![](/img/trans.png)
[英]Disable the row selection on right click in wpf datagrid if row is already selected
[英]DataGrid Row Selection on Right Click Event Not Selecting Row
我有一个带有ContextMenu
的DataGrid
。 我想要的是在弹出上下文菜单(通过右键单击)时,我想要获取所选行上的列数据。 此数据将用于确认是否应启用某些上下文菜单选项。
所以我尝试了MouseRightButtonUp
事件处理程序,但最终得到了NullReferenceException
。
<DataGrid MouseRightButtonUp="DataGrid_MouseRightButtonUp">
private void DataGrid_MouseRightButtonUp(object sender, MouseButtonEventArgs e) {
MessageBox.Show(((DataRowView)DataGrid.SelectedItem).Row.ItemArray[0].ToString());
}
然后,我尝试了SelectionChanged
事件,该事件最终起作用了,但是如果连续多次SelectionChanged
它,则它不会连续运行多次。 我需要这样,以便每当右键单击一行时,事件就会触发并返回列数据。 同样,不需要单击鼠标左键也会触发此事件。
目前我有哪些可用选项?
您可以尝试直接在DataGridRow上设置MouseRightClick事件处理程序,如下所示:
<DataGrid.Resources>
<Style TargetType="DataGridRow">
<EventSetter Event="MouseRightButtonUp" Handler="YourHandler"/>
</Style>
</DataGrid.Resources>
这样,您将不必尝试查找被单击的行,从而限制了发生错误的可能性。 您将直接有权访问事件处理程序中的行。
希望有帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.