|
3 / 4 / 0
Регистрация: 19.09.2016
Сообщений: 91
|
||||||
WPF Фильтрация DataGrid через ComboBox10.07.2019, 07:56. Показов 17893. Ответов 37
Доброе время! Изучая WPF и MVVM я столкнулся с задачей, с решением которой не хватает знаний. Суть в следующем:
Приложение работает с некими товарами и определены они в Product для БД и затем в ProductVM для работы с View. Во вьюшке товары выгружаются в DataGrid. В ComboBox выводится наименование поставщиков. Задача состоит в том чтобы при выборе в ComboBox-е поставщика, в DataGrid выводились только товары у которых выбранный поставщик.
Весь пример можно скачать тут https://yadi.sk/d/tkd2d6Yn54eLIQ
0
|
||||||
| 10.07.2019, 07:56 | |
|
Ответы с готовыми решениями:
37
Фильтрация данных в WPF DataGrid Фильтрация в DataGrid по данным из TextBox или CheckBox |
|
Модератор
|
||
| 23.07.2019, 15:07 | ||
Сообщение было отмечено AII как решение
РешениеDataGrid не подходит.P.S И посмотрите как работает CollectionViewSource - в ней осуществляется автоматическая динамическая фильтрация. Изменив название поставщика продукта - это продукт сразу будет автоматически фильтроваться.
1
|
||
|
3 / 4 / 0
Регистрация: 19.09.2016
Сообщений: 91
|
||
| 23.07.2019, 15:54 [ТС] | ||
|
Спасибо огромное, за Ваш ответ, очень помогли, я немного взглянул на свой код с другой стороны. Мне раньше казалось что вся работа должна быть сосредоточена в VM. И соответственно события происходящие в самой форме я совсем не рассматривал. А так же думал что в CB окна, по большому счету вообще ничего не должно быть ))). А так то в принципе, мы не трогаем остальные уровни, а просто форма работает с теми данными которые у неё есть.
Добавлено через 8 минут
0
|
||
|
1596 / 601 / 185
Регистрация: 05.12.2015
Сообщений: 970
|
||||||
| 23.07.2019, 16:14 | ||||||
|
Для решения твоей задачи у тебя уже все есть.
Просто добавить пару строчек кода в VM
0
|
||||||
|
Модератор
|
||
| 23.07.2019, 16:41 | ||
|
Так же в CB можно прописать кое-какую логику работы View. Допустим, команда кнопки привязана к свойству VM, а Click обрабатывается внутри View для изменения отображения каких-то элементов.Но надо стремиться к тому, чтобы CB меньше загружать. По возможности всё реализовывать в XAML.
0
|
||
|
Модератор
|
||
| 23.07.2019, 16:54 | ||
|
Создание решения начинается с проектирования его архитектуры. На этом этапе определяется общее ТЗ и ТЗ к каждой части приложения. Чем подробнее и детальнее будут составлены эти ТЗ тем проще будет потом их реализовывать и меньше потребуется переделок. Ещё такой совет, на начальном этапе обучения, лучше раздельные части решения делать не в отдельных папках, а в отдельных проектах. Вам тогда будет проще понять границы видимостей типов и данных. Начинать делать решение надо с Model. Её надо полностью реализовать и отладить в КОНСОЛЬНОМ приложении. Перед созданием View необходимо определить интерфейс VM и реализовать его в виде Контекста Данных Времени Разработки. Я его обычно реализую как VM времени разработки - VMDD. Это сильно облегчает создание View и позволяет её отлаживать независимо от Model. Добавлено через 1 минуту P.S. Прочитайте темы из Готовые решения, примеры и рекомендации начинающим на WPF [Элд Хасп] Там есть и подробная реализация готовых WPF+MVVM решений.
0
|
||
|
3 / 4 / 0
Регистрация: 19.09.2016
Сообщений: 91
|
||
| 24.07.2019, 06:18 [ТС] | ||
|
Большое спасибо, за помощь и за такой развернутый ответ. К сожалению, когда самостоятельно изучаешь какую то обширную и достаточно сложную область, особенно программирование, то как слепой тыркаешься в разные стороны пытаясь ухватиться за любую твердую поверхность или ориентир. Документация очень какая то скудная. По этому Ваши советы очень важны. Еще раз спасибо!
Добавлено через 11 минут
0
|
||
|
Модератор
|
||||
| 24.07.2019, 08:26 | ||||
|
Я сам пытался несколько раз читать учебники, но.... Для меня проще оказалось METANIT, professorweb, MSDN и документация MS. По ним и учился. Начал освоение C# и WPF меньше года назад. До этого знал только их названия. Добавлено через 4 минуты А вот опыт WF, по моим наблюдениям, не просто будет лежать балластом, а будет даже негативно влиять на освоение современных платформ. Добавлено через 59 секунд
0
|
||||
|
3 / 4 / 0
Регистрация: 19.09.2016
Сообщений: 91
|
|
| 24.07.2019, 08:35 [ТС] | |
|
Спасибо!
0
|
|
|
1 / 1 / 1
Регистрация: 19.12.2016
Сообщений: 153
|
||
| 12.10.2021, 19:49 | ||
|
Элд Хасп,
0
|
||
|
1 / 1 / 1
Регистрация: 19.12.2016
Сообщений: 153
|
||||||||
| 13.10.2021, 06:03 | ||||||||
|
Элд Хасп,
Добавлено через 3 минуты
0
|
||||||||
|
Модератор
|
|||||||
| 13.10.2021, 12:14 | |||||||
|
Там ничего кроме определения прохождения элемента через фильтр быть не должно. А, как я понял, вы там даже меняете значения свойств UI элементов. Это всё выполняется в одном UI потоке и вполне возможна взаимоблокировка методов. Сделайте простой фильтр:
Если всё ОК, то понемногу добавляйте логику и определите после чего он станет тормозить.
1
|
|||||||
|
1 / 1 / 1
Регистрация: 19.12.2016
Сообщений: 153
|
|
| 13.10.2021, 17:28 | |
|
Элд Хасп, А как правильно фильтровать большой список чтоб View не зависала?
0
|
|
|
Модератор
|
||
| 13.10.2021, 19:24 | ||
|
Для этого используется или ленивая подгрузка с фильтрацией на уровне Модели. Или, что более типично для WPF, технологии виртуализации. В этом случае через фильтр проходят только те элементы которые отображаются в данный момент. Но вы же писали что проблема не размере списка?
0
|
||
|
1 / 1 / 1
Регистрация: 19.12.2016
Сообщений: 153
|
||
| 19.10.2021, 06:52 | ||
|
Элд Хасп,
0
|
||
|
Модератор
|
||
| 19.10.2021, 11:35 | ||
|
Два основных описал выше: подгрузка коллекции по мере промотки в GUI и использование виртуализации. И то, и другое в двух словах не объяснишь. Добавлено через 54 секунды marat1905, по вопросу в теме получилось всё сделать?
0
|
||
|
1 / 1 / 1
Регистрация: 19.12.2016
Сообщений: 153
|
|
| 19.10.2021, 12:03 | |
|
Элд Хасп, Да получилось нашел ошибку у себя.
1
|
|
| 19.10.2021, 12:03 | |
|
Фильтрация ListView или DataGrid по нескольким критериям?
Combobox + datagrid + бд WPF. DataGrid в ComboBox
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Теория всего 6. Судьба неотвратима?
anaschu 21.07.2026
Математическое доказательство Судьбы: Точка бифуркации в едином тензорном ядре Модели ВсегоСвежее обновление питоновского ядра «Soil Chemistry 2. 0» дало нам неопровержимое математическое. . .
|
Теория всего 5. ядро Теории Всего: Математический изоморфизм репликаторов и иллюзия свободы воли
anaschu 21.07.2026
Единое ядро Теории Всего: Математический изоморфизм репликаторов и иллюзия свободы воли
Главная задача «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы» (аттракторов. . .
|
сукцессия 37. Внедрил дипсик в свой оркестр из ИИ. У него закончилось пространство чата, потому опубликую выводы из его работы здесь
anaschu 21.07.2026
====================================================================
КОНТЕКСТ: Моделирование микоризной сукцессии (AM → ECM)
====================================================================
. . .
|
сукцессия 36. Делаю прогоны модели около порога бифуркации (превращения эндо микоризы в экто микоризу)
anaschu 21.07.2026
СУКЦЕССИЯ МИКОРИЗ: КАК МАТЕМАТИКА ОБЪЯСНЯЕТ ПОДЗЕМНУЮ ВОЙНУ
Мы привыкли думать, что лес — это деревья. А грибы — это то, что мы собираем в корзинку осенью. Но если заглянуть под землю, окажется,. . .
|
|
ИИ и человечность
kumehtar 21.07.2026
Забавно, что общаясь с ИИ, я замечаю, насколько он высказывается умно, и насколько верит в людей. Он умеет прощать. Он знает как отвечать не обесценивая опыт других людей, даже если сам не верит. Он. . .
|
Нейтральные знания ..., ... чистая наука. Пока что-то проходит модерацию на Хабре, стоит развить мысль ...
Hrethgir 20.07.2026
К таким радикальным взглядам я конечно в той публикации не приходил, но чтобы скоротать вечер, решил углубиться немного.
1. Почему показания термометра заряжены целью?
Цель заложена в самом. . .
|
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
|
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
|