Показать родительские / дочерние строки в одной и той же сетке данных - PullRequest
1 голос
/ 19 марта 2012

ищет несколько советов о том, как лучше всего подойти к этой проблеме.

У меня есть требование создать сетку данных, которая показывает несколько родительских строк, и в каждой родительской строке у нас есть кнопка разворачивания / свертывания.При нажатии этой кнопки некоторые связанные дочерние строки будут отображаться под родительской строкой.

Я реализовал это, используя шаблон rowdetailstemplate в родительской сетке данных, который при раскрытии показывает другую сетку данных, которая затем отображает связанные дочерние строки.Этот предыдущий вопрос Отображение иерархических родительских дочерних данных в WPF DataGrid показывает подробности ..

Это работает нормально, но имеет проблему, что каждая родительская строка эффективно имеет отдельную сетку данных для детей, поэтомунапример, навигация с помощью клавиатуры работает не слишком хорошо, так как дочерняя область строк строк пропускается, единственное, что мы перемещаемся - это родитель.

Другие проблемы - когда мы выбираем дочерние строки с помощью мыши, мы получаемс несколькими строками, которые выделены как выбранные.Это понятно, поскольку каждая сетка является отдельным элементом управления.

Цель состоит в том, чтобы рассматривать дочерние строки так же, как родительские строки, с точки зрения выбора, навигации и т. Д.

Есть ли у кого-нибудь какие-либоуказатели или руководство, как решить эту проблему?

Спасибо

1 Ответ

1 голос
/ 20 марта 2012

WPF DataGrid нельзя использовать для представления стиля иерархического древовидного представления , что легко . Существует элемент управления TreeListView , но он не является сложной сеткой данных WPF с точки зрения виртуализации, редактирования, выбора ячеек и строк и т. Д. Но, учитывая, что ваша сетка данных будет доступна только для чтения, а ваш выбор будет построчным, вы можете применить стили для этого элемента управления, чтобы он выглядел как сетка данных WPF.

...