Вложенная сетка данных WPF с фиксированным заголовком и подзаголовком

Я хочу создать вложенную сетку данных WPF, которая будет иметь фиксированный заголовок и подзаголовок. Ниже приведены некоторые моменты, необходимые для создания вложенного элемента управления сеткой:

  1. В строках основной сетки будут данные, выровненные по столбцам основного заголовка, а во вложенных строках сетки будут данные, выровненные по столбцам подзаголовка.
  2. При щелчке строки основной сетки вложенные строки сетки должны отображаться с данными, соответствующими столбцам подзаголовков.
  3. Пользователь должен иметь возможность расширять несколько строк основной сетки.

Ниже приведено изображение, на котором изображена сетка, которая нам нужна.

введите здесь описание изображения

Как показано в приведенной выше сетке, серые строки — это основные строки, выровненные с основным заголовком, а две белые строки — это подстроки, выровненные с подзаголовком (operacao, autent., hora и т. д.).

Коллекция (основная сетка), которая должна быть привязана к этому элементу управления, имеет другую коллекцию в качестве свойства, которая содержит строки подстрок (вложенная сетка).


person Sharad    schedule 03.09.2015    source источник


Ответы (1)


Эта функциональность может быть достигнута с помощью следующей иерархии:

  1. Чтобы создать такой элемент управления, вам нужно будет создать метки отдельно от сетки с ожидаемым дизайном и выровнять их ширину по свойствам коллекции, которые должны быть столбцами сетки.
  2. Создайте пользовательский элемент управления, унаследованный сеткой данных, и обработайте в нем события Mouse и Key для сетки данных.
  3. Используйте этот настраиваемый элемент управления в основном файле XAML с источником данных, равным основной коллекции (списку), и привяжите столбцы сетки к свойствам источника данных.
  4. Используйте шаблон данных внутри сетки данных с шаблоном RowDetailsTemplate, который также будет содержать настраиваемый элемент управления (сетку данных).
  5. Привяжите внутреннюю коллекцию, представленную в основной коллекции, к этому внутреннему пользовательскому элементу управления. Вот как можно достичь вложенности с помощью компонентов сетки данных.
  6. Для функций развертывания и свертывания переопределите события Mouse Down/Mouse Up пользовательского элемента управления и обработайте видимость элемента управления Row Details. Вот как вы можете управлять расширением и свертыванием строк сетки.

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

person Sumit Saini    schedule 04.11.2015