Остановить нажатие CTRL-Click на родительскую сетку данных - PullRequest
4 голосов
/ 22 февраля 2012

У меня есть 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?

1 Ответ

2 голосов
/ 23 февраля 2012

Catching PreviewMouseLeftButtonDown на дочернем контроле, установка e.Handled = true и dataGridRow.IsSelected = !dataGridRow.IsSelected исправили это.

...