0
我是wpf的新手。 我有一個網格,WPF項目禁用ContextMenu 在特定條件下右鍵單擊Gridview行
<GridView x:Name="Train_View_Grid">
<GridViewColumn DisplayMemberBinding="{Binding Path=Status}" Header="Status"/>
</GridView>
具有上下文菜單(right_Click)出現上點擊右鍵。
我必須對狀態已完成的行禁用此右鍵單擊(其中一列是狀態值,它可以完成或運行) 但是,如果狀態正在運行,我們必須顯示右鍵單擊菜單。
private void PEGrid_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
hideContextMenu();
}
private void hideContextMenu()
{
if (Train_Details_View.SelectedItems.Count > 0)
{
DataRowView drv = Train_Details_View.SelectedItems[0] as DataRowView;
String journey_status = drv.Row["Status"].ToString();
if (journey_status.Equals("Finished"))
{
ContextMenu.Visibility = Visibility.Hidden;
}
}
}
和我把它叫做上下文菜單中的網格,
<Grid x:Name="Train_Info_Pnl" Grid.Column="2" Margin="0,0,10,0" Grid.Row="1" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.CanContentScroll="True" PreviewMouseRightButtonDown="PEGrid_PreviewMouseRightButtonDown" >
是我上面的代碼正確的,我應該在哪裏打電話呢? 如果我的代碼是錯誤的,我該如何糾正它..
您可以通過overiding的OnPreviewMouseRightButtonDown事件(處理爲true)禁用右鍵點擊,不要忘了OnPreviewMouseRightButtonUp爲好。這是你想要的? – erikduvet 2014-09-25 10:42:03
是的我怎麼能做到這一點..我是新的WPF我不知道如何調用這些事件,並創建它們 – Silver 2014-09-25 10:42:51
類似於:保護覆蓋無效OnPreviewMouseRightButtonDown(MouseButtonEventArgs e){...} Google for OnPreviewMouseRightButtonDown/Up你肯定會解決的。現在不在計算機上,所以無法驗證它,但它應該可以工作... – erikduvet 2014-09-25 10:44:36