У меня есть требование создать «супер-сетку» как часть приложения, которая будет состоять из нескольких замороженных и прокручивающихся панелей.Сетка также требует, чтобы она поддерживала следующие функции:
- Отображение сетки данных с сотнями строк с «разумной» скоростью прокрутки
- Группировка по определенному полю, свернуть /развернуть сгруппированные
- Показать любой элемент управления внутри поля, например изображения, текст, поле со списком, кнопка
- Разрешить кнопки и редактирование полей, а также режим только для чтения
- Разрешить несколько вертикальных разделенных панелей (или обходной путь, несколько синхронизированных сеток)
- Изменение порядка столбцов пользователя с сохранением
- Сортировка столбцов пользователя по возрастанию / убыванию
- Динамическая вставка/ удаление столбцов (выбор столбцов)
- 4-е измерение под группировкой - шаблон RowDetails для выбранной строки
- Разрешить мигать / анимированные шаблоны ячеек / строк при обновлении значения
Моя первоначальная выполнимость позволяет предположить, что WPF Datagrid способен удовлетворить почти все вышеперечисленные требования (с тяжелыми шаблонами), однако многократноеВертикальные панели не могут быть закрыты.Ниже приведена диаграмма того, чего я пытаюсь достичь:
Я хотел бы узнать, делал ли это кто-то раньше, и если да, то какую сеточную технологию вы использовали.
- Можно ли сделать вышеизложенное в WPF Datagrid?Я знаю о замороженных столбцах, однако, похоже, что это применимо только к замораживанию первых N столбцов
- Можно ли достичь вышеуказанного с помощью нескольких сеток и синхронизации положений вертикальной прокрутки?
- Если это так, будет ли это решение по-прежнему виртуализировано?
- Существуют ли какие-либо сторонние сети, которые вы можете порекомендовать для достижения этой цели?Обратите внимание, что мы будем в значительной степени стилизовать сетку в соответствии с внутренним брендингом, поэтому она должна быть гибкой и смешиваемой.
Любые комментарии / предложения приветствуются.
Обновление - результаты технико-экономического обоснования
- У меня есть рабочий прототип для этого с использованием 3x сеток и разборных разветвителей сетки между ними.
- Наблюдатели синхронизируются, используя ответ от на этот вопрос .
- Выбранная строка синхронизируется между тремя сетками путем привязки к общему свойству SelectedIndex с привязкой TwoWay.
Я буду работать над шаблонами группировки и подробностей строк дальше ... Спасибо ответчикам за ваши очки!:)