|
Total row (footer) для стандартного WPF DataGrid
|
|||
---|---|---|---|
#18+
Просто оставлю это здесь, может кому пригодится. Промучившись с размышлениями и пробами, погуглив различные сильно замороченные варианты решения задачи создания строки для DataGrid, которая была бы всегда внизу, нашел на мой взгляд простое и изящное решение. Комментариии излишни Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Критика приветствуется. Теоретически, нужно было бы еще переопределить GetEnumerator на свой, который делает то же самое (и я поначалу попытался это запилить), но выяснилось, что ItemsControl не дергает IEnumerable, когда есть ICollection. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 06:25 |
|
Total row (footer) для стандартного WPF DataGrid
|
|||
---|---|---|---|
#18+
1. А как эта штука ведет себя, когда пользователь выполняет сортировку (кликом по хидеру колонки)? 2. И как эта штука будет вести себя при группировке данных? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 06:36 |
|
Total row (footer) для стандартного WPF DataGrid
|
|||
---|---|---|---|
#18+
1. Как надо работает, как раз из-за пользовательской сортировки это все и пришлось мутить. 2. Не пробовал, полагаю, аналогично. Это ведь работает после всех сортировок и группировок. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 06:40 |
|
Total row (footer) для стандартного WPF DataGrid
|
|||
---|---|---|---|
#18+
И да, 3: по-моему, этой последней итоговой строке будет проблематично назначить свой собственный стиль отображения - она же будет в общем ItemsControl. Придется вводить для нее какой-то дополнительный отличительный признак, и использовать ItemContainerStyleSelector. И 4: Эта итоговая строка будет уходить вниз при скроллинге (т.к. она будет в общем ItemsControl). Как её сделать всегда видимой? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 06:44 |
|
Total row (footer) для стандартного WPF DataGrid
|
|||
---|---|---|---|
#18+
3. Ну я просто в модель добавил bool IsTotalRow и на него повесил нужную обработку в представления. И вообще, это же уровень модели строки, а не уровень коллекции. То бишь, решается как обычно. 4. У меня такой задачи не было. Думаю, что на базе штатного DataGrida это проблему фиг решишь. Если только пытаться делать два DataGrid-а и синхронизировать ширину их столбцов, но это совсем другая история. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 06:51 |
|
Total row (footer) для стандартного WPF DataGrid
|
|||
---|---|---|---|
#18+
По идее, тут есть такой еще недостаток - не будет событий изменения коллекции при изменении свойства LastElement, ну это можно добавить. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 07:17 |
|
Total row (footer) для стандартного WPF DataGrid
|
|||
---|---|---|---|
#18+
Понятно, спасибо за идею, может, где-то пригодится. Shocker.ProДумаю, что на базе штатного DataGrida это проблему фиг решишь. Если только пытаться делать два DataGrid-а и синхронизировать ширину их столбцов, но это совсем другая история. Ну да, я в свое время так и сделал - нагуглил вот это , и доработал напильником, т.к. очень не хотеолсь связываться с девэкспрессовким гридом (очень он уж тяжелый), а требовалось сделать именно закрепленный footer с итогами (которые, разумеется, меняли бы размеры при изменении размеров колонок, скрывались при скрытии колонок, итд). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 07:20 |
|
Total row (footer) для стандартного WPF DataGrid
|
|||
---|---|---|---|
#18+
Всё правильно сделано. :) Так же реализован NewItemPlaceholder по сути своей :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2018, 18:52 |
|
|
start [/forum/search_topic.php?author=Oni_x&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
160ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 272ms |
total: | 562ms |
0 / 0 |