|
84 / 83 / 6
Регистрация: 13.07.2009
Сообщений: 107
|
|||||||||||
Группировка и сортировка привязанных изменяющихся данных30.10.2009, 20:15. Показов 11513. Ответов 21
Метки нет (Все метки)
В данный момент разбираюсь в привязке данных в WPF. ИМХО, как это реализовано - мрак, ну да приходится мириться и пользоваться тем, что есть.
Последнее, о чем прочитал - Сортировка и Группировка привязанных данных. До этого много пришлось танцевать с бубном, что бы добиться автообновления ListBox при добавлении/удалении элементов в связанную коллекцию, а так же изменении их содержимого. Коллекцию пришлось разместить в классе ObservableCollection, базовый класс с данными унаследовал интерфейс INotifyPropertyChanged. Отдельного разговора стоит история, как я потом переходил на темплейты, но сейчас хочу спросить о такой проблеме: В образовательных целях добавил сортировку и группировку данных. Данные при добавлении новых элементов группируются и сортируются, но вот если изменить поле, по которому данные группируются, после добавления - эти изменения ListBox не отображает. Та же проблема с сортировкой. Раньше пришло применить интерфейс INotifyPropertyChanged именно потому, что контрол не отображал измененное поле, но в ситуации с сортировкой и группировкой этот прием не дает желаемого эффекта . Кто знает как побороть эту новую напасть?Привожу весь код, а заодно и проект выкладываю, так как мне пока попадалось толко одно похожее решение, а задача достаточно жизненная. C#
2
|
|||||||||||
| 30.10.2009, 20:15 | |
|
Ответы с готовыми решениями:
21
Сортировка и группировка данных в Silverlight3 Отображение привязанных данных в виде checkBox Проблема с получением привязанных данных при передаче готового объекта |
|
0 / 0 / 0
Регистрация: 24.08.2014
Сообщений: 3
|
|
| 14.11.2009, 22:38 | |
|
попробуй применить CollectionViewSource он специально предназначен для таких задач
примеров использования довольно много даже в msdn
0
|
|
|
84 / 83 / 6
Регистрация: 13.07.2009
Сообщений: 107
|
||||||
| 15.11.2009, 17:04 [ТС] | ||||||
|
sergiy, Если ты внимательно смотрел мой пример, то должен был заметить этот конструктор
![]()
2
|
||||||
|
49 / 47 / 1
Регистрация: 03.08.2009
Сообщений: 101
|
||
| 16.11.2009, 08:47 | ||
|
думаю тебе имеет смысл почитать эту статью в msdn http://msdn.microsoft.com/ru-r... anged.aspx
0
|
||
|
84 / 83 / 6
Регистрация: 13.07.2009
Сообщений: 107
|
||
| 16.11.2009, 11:47 [ТС] | ||
|
BitFields, у меня такое чувство, что никто внимательно не читает и не вникает в вопросы :-\.
Вот что я писал в начале первого поста:
0
|
||
|
49 / 47 / 1
Регистрация: 03.08.2009
Сообщений: 101
|
||||||
| 16.11.2009, 11:53 | ||||||
|
Да ситуация сложней с этим классом чем я думал, может попробовать помимо наследования от интерфейса INotifyPropertyChanged, ObservableCollection
0
|
||||||
|
84 / 83 / 6
Регистрация: 13.07.2009
Сообщений: 107
|
||||||
| 16.11.2009, 12:49 [ТС] | ||||||
|
BitFields, я использовал обертку вокруг ObservableCollection<T>, что тоже самое, но для чистоты совести попробовал и прямое наследование:
BitFields, не в обиду, если действительно хочешь помочь - загрузи мой проект и проверь все догадки на нем, вместо того, что бы озвучивать то, что я уже давно попробовал и привел .Поверь, я уже давно не студент и если что-то спрашиваю, то это значит, что я уже провозился над проблемой не один час .
0
|
||||||
|
49 / 47 / 1
Регистрация: 03.08.2009
Сообщений: 101
|
|
| 16.11.2009, 14:29 | |
|
Немного изменил проект, хотя работает по-прежнему не совсем правильно
![]() Как прикрепить файл?
0
|
|
|
49 / 47 / 1
Регистрация: 03.08.2009
Сообщений: 101
|
|
| 16.11.2009, 14:50 | |
|
2
|
|
|
84 / 83 / 6
Регистрация: 13.07.2009
Сообщений: 107
|
|
| 16.11.2009, 15:05 [ТС] | |
|
BitFields, Спасибо тебе просто за то, что пытаешься помочь, ну и за пример способа оформления бизнес-логики.
Правда в связи с неизмененной логикой, мы ни на шаг не приблизились к решению моей проблемы .Не по теме: Через час иду сдавать экзамен Microsoft по WPF, но Microsoft таких глобальных задач в вопросах не ставит, так что, уверен, сегодня еще одним сертифицированным спецом станет больше ;)
1
|
|
|
49 / 47 / 1
Регистрация: 03.08.2009
Сообщений: 101
|
|||||||||||
| 16.11.2009, 15:22 | |||||||||||
Удачи!Добавлено через 1 минуту
Добавлено через 11 минут
0
|
|||||||||||
|
84 / 83 / 6
Регистрация: 13.07.2009
Сообщений: 107
|
|
| 16.11.2009, 19:05 [ТС] | |
|
BitFields, Первый пример не правильный по сути подхода, который подразумевает функцию, для сообщения о изменении конкретного свойства.
Второй ничего не меняет, так как по умолчанию Mode=TwoWay и используется .Не по теме: За пожелания удачи спасибо - сдал ;)
0
|
|
|
49 / 47 / 1
Регистрация: 03.08.2009
Сообщений: 101
|
||
| 16.11.2009, 19:47 | ||
|
[ATTACH]Проект[/ATTACH]
1
|
||
|
49 / 47 / 1
Регистрация: 03.08.2009
Сообщений: 101
|
|
| 16.11.2009, 22:23 | |
|
Теперь сделал на основе этого кода "продвинутый проект" с темплейтами изображения и возможностью изменять их
![]() Вообще тема очень хороша включает класс ObservableColllection, интерфейс INotifyPropertyChanged и пример для стилизации и использование шаблонов с помощью DateTemplate.
0
|
|
|
49 / 47 / 1
Регистрация: 03.08.2009
Сообщений: 101
|
|||||||||||
| 17.11.2009, 13:58 | |||||||||||
|
Немного изменил проект и добавил к ресурсам XmlDataProvider
0
|
|||||||||||
|
84 / 83 / 6
Регистрация: 13.07.2009
Сообщений: 107
|
|
| 18.11.2009, 17:49 [ТС] | |
|
BitFields, Согласен, я допустил неточность
. Я имел в виду, что для данного контрола дефолтное значение и TwoWay дадут тот же эффект, так как ListBox не предусматривает изменение данных.В любом случае, даже не смотря на то, что задача действительно оказалась многогранной и жизненной (о чем я написал в самом начале), решение проблемы визуализации так до сих пор и не было найдено :-\. Не по теме: Мой юбилейный сотый пост :)
0
|
|
|
49 / 47 / 1
Регистрация: 03.08.2009
Сообщений: 101
|
|
| 18.11.2009, 20:53 | |
|
Да что-то я не понимаю где проблема визуализации? Вроде все корректно работает...
Добавлено через 57 минут Может попробовать обновить сортировку и группировку при событии SourceUpdated, которое происходит при изменении любого свойства привязанного к данному элементу(в данном случае ListBox)
0
|
|
|
49 / 47 / 1
Регистрация: 03.08.2009
Сообщений: 101
|
||
| 18.11.2009, 23:08 | ||
|
0
|
||
|
49 / 47 / 1
Регистрация: 03.08.2009
Сообщений: 101
|
|
| 21.12.2009, 13:46 | |
|
TestClass также должен наследоваться от интерфейса IEditableObject,
тогда будет после изменения и редактирования произойдет сортировка и группировка.
0
|
|
| 21.12.2009, 13:46 | |
|
Помогаю со студенческими работами здесь
20
Сортировка/группировка данных в сводной таблице Событие после изменения данных привязанных к DataGridView
Сортировка и группировка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|