【问题标题】:Stop CTRL-Click from affecting parent datagrid停止 CTRL-Click 影响父数据网格
【发布时间】:2012-02-22 03:21:45
【问题描述】:

我有一个 WPF DataGrid,它在 RowDetailsTemplate 中声明了另一个数据网格;

<DataGrid name="dataGrid1" RowDetailsVisibilityMode="VisibleWhenSelected">
  ...
  <DataGrid.RowDetailsTemplate>
    <DataTemplate>
      <DataGrid name="dataGrid2">
        ...
      </DataGrid/>
    </DataTemplate>
  </DataGrid.RowDetailsTemplate>
</DataGrid>

当我按住 CTRL 键单击子 DataGrid 上的一行时,它会取消选择父数据网格的 SelectedItem 并隐藏 RowDetailsTemplate

我认为这是某种路由事件行为,但我试图在数据网格上捕获MouseDown/LeftButtonMouseDown,但没有触发任何事件。我还在子数据网格上捕获了SelectedItemChanged 事件并设置了e.Handled = true;,但该事件仍会在父数据网格上触发。

CTRL-单击子 DataGridRow 时,如何阻止父数据网格取消选择?

【问题讨论】:

    标签: c# wpf xaml wpfdatagrid


    【解决方案1】:

    在子控件上捕获PreviewMouseLeftButtonDown,设置e.Handled = truedataGridRow.IsSelected = !dataGridRow.IsSelected 修复了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-26
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多