|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
Добрый вечер, уважаемые! Подскажите пожалуйста, как можно сделать поле счетчик в DataGrid. Который бы тупо нумеровал записи, начиная с 1. При удалении записи - пересчитывался бы без образовавшейся "дырки". Я так полагаю нужно написать выражение в binding поля, но как его составить правильно для такого случая? Благодарю. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 22:22 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
>Евгений Стронг, сегодня, 22:22 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1322025&msg=22075178][22075178] >Подскажите пожалуйста, как можно сделать … <Можно так - поместите информацию в List и привяжите List к DataGrid: dataGrid1.DataSource = list; ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2020, 23:28 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
Индекс элемента в DataGrid нужно вычислять по индексу контейнера, а не самого элемента Модель представления, просто предоставляет список объектов Person: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
Конвертер, в качестве параметров передается объект DataGrid и элемент списка Person (или другие NewPlaceHolder, для примера), определяется контейнер элемента (DataGridRow) и её индекс: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Представление, в ресурсах переопределен шаблон заголовка строки DataGrid'а, можно это делать как угодно. Тут есть 1 лайфхак, в мультибиндинге в конвертер передается ожидаемый объект списка и датагрид, но еще передается количество элементов в представлении коллекции, как только добавляется элемент или удаляется из коллекции он изменяется и это приводит к обновлению биндинга и обновлению значения, без этого работать нормально не будет. Так же нужно выключить тип виртуализации Recycled и включить Standard, иначе так же работать будет криво. Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
всякие проверки в код не включаю, так как делал на коленке ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 00:49 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
Roman Mejtes, Мама дорогая. Это вот только нужно всего, чтобы тупо отображался порядковый номер строки? Жесть... Я лучше в хранимке в результатирующий набор добавлю поле, в котором циклом буду проставлять порядок. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 18:27 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
Roman Mejtes, Нашел такое вот решение: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
WPF Код: xml 1. 2. 3.
Всё срабатывает, но почему нумерация сбивается, совершенно не понятно... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 20:30 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
Потому что виртуализация и переиспользование контейнера. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 20:48 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
Shocker.Pro Потому что виртуализация и переиспользование контейнера. Круто конечно. Но прозвучало честно говоря, как заклинание. Можно немного подробнее и есть ли решение? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 21:05 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
Евгений Стронг Можно немного подробнее https://metanit.com/sharp/wpf/14.5.php Евгений Стронг есть ли решение? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 23:58 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
>Shocker.Pro, вчера, 23:58 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1322025&msg=22075858][22075858] >я бы делал нумерацию строк на уровне модели, то бишь источника данных < так оно и есть, но не понятен смысл нумерации, что она даёт, изменил сортировку - и поплыла нумерация ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 00:47 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
ВМоисеев но не понятен смысл нумерации, что она даёт, изменил сортировку - и поплыла нумерация Иногда полезно вникать в код, приведённый выше. У того решения, которое привёл Роман, нумерация при сортировке остаётся неизменной. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 04:22 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
Сон Веры Павловны ВМоисеев но не понятен смысл нумерации, что она даёт, изменил сортировку - и поплыла нумерация Иногда полезно вникать в код, приведённый выше. У того решения, которое привёл Роман, нумерация при сортировке остаётся неизменной. Я написал про то, что как сложно оно реализуется. Такой достаточно стандартный функционал, можно было и добавить как стандартную фичу в DataGrid. Вроде преимущества WPF, но в то же время по сравнению с вин контролами - достаточно напутано. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 12:43 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
>Сон Веры Павловны, сегодня, 04:22 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1322025&msg=22075896][22075896] >Иногда полезно вникать в код… < Согласен. Но не менее полезно знать для чего это нужно. Что нужно задавшему вопрос? Он хочет пронумеровать строки грида, или строки выборки? И что это дает? Если строки грида, то при сортировке закрепление номера за строкой выборки изменится. Если нумеруются строки выборки, то при сортировке нарушится последовательность номеров. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 12:44 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
ВМоисеев >Сон Веры Павловны, сегодня, 04:22 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1322025&msg=22075896][22075896] >Иногда полезно вникать в код… < Согласен. Но не менее полезно знать для чего это нужно. Что нужно задавшему вопрос? Он хочет пронумеровать строки грида, или строки выборки? И что это дает? Если строки грида, то при сортировке закрепление номера за строкой выборки изменится. Если нумеруются строки выборки, то при сортировке нарушится последовательность номеров. Да, мне хотелось просто нумерацию, сверху вниз, не зависимо от сортировки данных. И если сортировка выполнена по какому-то полю, то в любом нумерация снова сверху вниз от 1 до ... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 12:50 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
Евгений Стронг Такой достаточно стандартный функционал, можно было и добавить как стандартную фичу в DataGrid. Стандартный...? Мне он не разу не понадобился. Я, вообще, не понимаю, что такое номер строки при работе с БД? В базе это почти ID (если не было удалений). А если была неполная выборка или с сортировкой? Номер строки выборки? Тогда это должна делать Модель. А если сортировку, фильтрацию делает ViewModel или View? Какую полезную информацию, вообще, этот номер может нести в DataGrid? Допустим, список покупок в корзине. Но список покупок это данные из БД. И номер покупки это часть этих данных хранящихся в БД. И View никоим образом не должна сама ставить эти номера. Она может только отсортировать по ним. А изменение номеров (при удалении, добавлении, пересоритровке) - это функция Модели. Roman Mejtes , как всегда на высоте. Решение мне его очень понравилось. Всё корректно и ничего лишнего. Евгений Стронг , но вот где вы его собираетесь применить...? Только может, для редактирования матриц..? Даже в голову не приходит вариант где может понадобиться в View ставить номера строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 13:12 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
Евгений Стронг можно было и добавить как стандартную фичу в DataGrid Евгений Стронг по сравнению с вин контролами В одном из учебников был простейший пример, как сделать вот такое представление для карточной игры (см. картинку). Это обычный ListBox. Можно ли сделать это с помощью винконтроловского листбокса? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 13:18 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
Eld Hasp Мне он не разу не понадобился. я писал ERP с огромным количеством представлений данных в виде гридов. Ни разу не требовалась нумерация строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 13:20 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
Eld Hasp Даже в голову не приходит вариант где может понадобиться в View ставить номера строк. Я навскидку знаю один пример, где в гриде есть порядковые номера строк - в гриде результатов запроса SSMS. Но это очень специфический случай. Евгений Стронг Вроде преимущества WPF, но в то же время по сравнению с вин контролами - достаточно напутано. А в чём, по-вашему, заключаются эти самые преимущества WPF? Зачем вы решили использовать именно его? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 15:30 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
Shocker.Pro Eld Hasp Мне он не разу не понадобился. я писал ERP с огромным количеством представлений данных в виде гридов. Ни разу не требовалась нумерация строк. Ну вообще нумерация прекрасный способ увидеть номер вашей строки, на которую вы обратили внимания или хотите запомнить. Даже в MS Studio в результативном наборе тебе возвращаются номера строк. В редакторе кода можно (и нужно) его включать, так как ошибка указывает именно на строку с ошибкой и тд. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 16:05 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
Shocker.Pro Евгений Стронг можно было и добавить как стандартную фичу в DataGrid Евгений Стронг по сравнению с вин контролами В одном из учебников был простейший пример, как сделать вот такое представление для карточной игры (см. картинку). Это обычный ListBox. Можно ли сделать это с помощью винконтроловского листбокса? О том и речь, что на WPF можно сделать всё, что угодно красивого, а вот добавить элементарный функционал, который на тех же контролах вообще по умолчанию включен - надо плясать с бубном несколько суток. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 16:06 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
Сон Веры Павловны Eld Hasp Даже в голову не приходит вариант где может понадобиться в View ставить номера строк. Я навскидку знаю один пример, где в гриде есть порядковые номера строк - в гриде результатов запроса SSMS. Но это очень специфический случай. Евгений Стронг Вроде преимущества WPF, но в то же время по сравнению с вин контролами - достаточно напутано. А в чём, по-вашему, заключаются эти самые преимущества WPF? Зачем вы решили использовать именно его? Поддался на маркетинг от мелкософта. Якобы как круто, вы только посмотрите. Всё настраивается и всё очень гибко. Только вот забыли добавить, что это настолько гибко, что вы будете гуглить как сумасшедший не один день ещё, чтобы сделать элементарную настройку, которая на вин контролах делается с помощью настроек мышкой. Ну это ладно) Надо же идти в ногу со временем. Ну а если серьезно, то преимуществ то много на самом деле и то, что я описал выше - является одним из главных - современные технологии. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 16:08 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
Евгений Стронг В редакторе кода можно (и нужно) его включать, так как ошибка указывает именно на строку с ошибкой и тд. Перейти в большинстве программ на нужную строку (и студия - не исключение) - Ctrl+G, номер текущей строки всегда отображается в строке состояния, и этого совершенно достаточно, чтобы не мозолить себе глаза ненужным столбцом. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 16:31 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
Евгений Стронг Поддался на маркетинг от мелкософта. Якобы как круто, вы только посмотрите. Всё настраивается и всё очень гибко. Только вот забыли добавить, что это настолько гибко, что вы будете гуглить как сумасшедший не один день ещё, чтобы сделать элементарную настройку, которая на вин контролах делается с помощью настроек мышкой. Ну это ладно) Надо же идти в ногу со временем. Ну а если серьезно, то преимуществ то много на самом деле и то, что я описал выше - является одним из главных - современные технологии. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 16:32 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
>Евгений Стронг, сегодня, 16:05 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1322025&msg=22076023][22076023] >Ну вообще нумерация прекрасный способ увидеть номер вашей строки, на которую вы обратили внимания или хотите запомнить. < Не думаю. Сортировка и фильтр Ваш прекрасный способ опускают ниже плинтуса. Для работы хватает этого преобразования: Код: c# 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 16:37 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
Shocker.Pro Евгений Стронг В редакторе кода можно (и нужно) его включать, так как ошибка указывает именно на строку с ошибкой и тд. Перейти в большинстве программ на нужную строку (и студия - не исключение) - Ctrl+G, номер текущей строки всегда отображается в строке состояния, и этого совершенно достаточно, чтобы не мозолить себе глаза ненужным столбцом. Не могу тут согласиться. Грид - это сетка данных. И у каждой ячейки должна быть координата. Прекрасный пример тому - Excel. Элементарная ситуация: Сотрудник выводит набор данных в гриде и подзывает коллегу, говоря ему, что не может найти ту или иную информацию в списке заказов. А тот ему в ответ: Ну вот ведь! На 23 строку посмотри. В противном случае ему пришлось бы тыкать пальцем или говорить - ниже, выше и тд. Нумерация - это идентификатор строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 16:38 |
|
WPF DataGrid поле счетчик
|
|||
---|---|---|---|
#18+
Евгений Стронг не может найти ту или иную информацию в списке заказов ВМоисеев Сортировка и фильтр Ваш прекрасный способ опускают ниже плинтуса. У меня несколько десятков человек работали со списком заказов. И за 20 лет ни у кого не возникло потребности, подобной твоей. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2020, 16:45 |
|
|
Start [/forum/topic.php?fid=21&fpage=2&tid=1440292]: |
0ms |
get settings: |
20ms |
get forum list: |
24ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
68ms |
get topic data: |
18ms |
get forum data: |
3ms |
get page messages: |
759ms |
get tp. blocked users: |
2ms |
others: | 316ms |
total: | 1218ms |
0 / 0 |