繁体   English   中英

右键单击事件中的DataGrid行选择未选择行

[英]DataGrid Row Selection on Right Click Event Not Selecting Row

我有一个带有ContextMenuDataGrid 我想要的是在弹出上下文菜单(通过右键单击)时,我想要获取所选行上的列数据。 此数据将用于确认是否应启用某些上下文菜单选项。

所以我尝试了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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM