|
0 / 0 / 0
Регистрация: 30.08.2019
Сообщений: 58
|
|
WPF & MVVM: Как получить значения из элементов VIEW (тексбоксы/комбобоксы/листбоксы.) и отправить их во Вью-Модель28.10.2019, 15:41. Показов 7831. Ответов 33
Всем привет. Собственно в названии темы удалось изложить суть проблемы.
Читал англоязычные форумы - вменяемого ответа не нашел. Это можно делать в *.cs файле, одноименным с названием View без проблем, делал уже. Обращаемся к элементу по имени, и меняем его свойства (цвет, видим/невидим и т.д.). Но как обратиться к элементам из Вью-Модели? При вводе имени ничего не происходит...Для чего это нужно? Ну вот например... ![]() Заполняю паспорт на партию семян, и там из комбобокса выпадает список организаций (которые хранятся в БД). ОК. Но как вот теперь обратиться к конкретной выбранной организации, чтобы добавить ссылку на неё в паспорте и сохранить паспорт в БД? Прилагаю скриншот. Помогите.
0
|
|
| 28.10.2019, 15:41 | |
|
Ответы с готовыми решениями:
33
WPF - MVVM - синхронизируемые комбобоксы WPF MVVM. How to create display new view? WPF MVVM View и ViewModel или UserControl и DependencyProperty |
|
Модератор
|
|
| 28.10.2019, 15:53 | |
|
trimagick77, из ViewModel в принципе нельзя обращаться к View, в том числе ни к каким UI элементам.
ViewModel ничего не знает о View. Даже о типе View знаний нет. WPF это или WinForms, или Консоль, или печатная машинка - ViewModel должно быть всё равно. WPF View сама обращается к View по необходимости. В основном через привязки (Binding).
0
|
|
|
0 / 0 / 0
Регистрация: 30.08.2019
Сообщений: 58
|
|
| 28.10.2019, 16:00 [ТС] | |
|
Элд Хасп, спасибо за ответ. Я в принципе так и думал...
Ну хорошо, как тогда реализовать мой пример выше? Мы же получается организацию выбираем только во время выполнения программы - как получить её значение? Не пойму
0
|
|
|
Модератор
|
|
| 28.10.2019, 16:08 | |
|
trimagick77, подходов несколько.
Можно в ViewModel создать свойство к которому в View будет привязан элемент. При исполнении команды значение будет получаться из им этого свойства. Другой способ. Так как сохранять надо не одно, а несколько значений, то их все можно привязать через мультиконвертер к проекту команды. И метод исполняющий команду получить все значения из переданного параметра. Посмотрите пример применения "SimpleMultiConverter" в теме "WPF конвертеры" из Готовые решения, примеры и рекомендации начинающим на WPF [Элд Хасп]
0
|
|
|
0 / 0 / 0
Регистрация: 30.08.2019
Сообщений: 58
|
||
| 28.10.2019, 17:11 [ТС] | ||
|
Элд Хасп, понимаю, что прошу много
но может, как будет время глянете мой код.Самому испрвить не удалось ![]() Прикрепляю архив Код Базовой вью-модели - ViewModelBase.rar Код наследуемой Вью-Модели - VMPassportRawSeed.rar Код View - PassportsRawSeed.rar
0
|
||
|
0 / 0 / 0
Регистрация: 30.08.2019
Сообщений: 58
|
|||
| 29.10.2019, 11:16 [ТС] | |||
)Как создать актуальную БД: Консоль диспетчера пакетов->Add-Migration MigrName1, потом update-database Список организаций, уже Будет в ДБ (делал через HasData). ![]() Далее запускаем проект, Паспорта на сырье и семена -> Добавить паспорт, чтобы перейти к проблемной теме. Также буду рад любым другим комментариям по поводу проекта ![]()
0
|
|||
|
0 / 0 / 0
Регистрация: 30.08.2019
Сообщений: 58
|
||
| 29.10.2019, 11:36 [ТС] | ||
![]() Entity Framework Core по другому называется Entity Framework 7...т.е. просто Entity Framework, если смотреть (не Core) называется Entity Framework 6...т.е. эта же как бы следующая версия, более усовершенствованная, и фишек блольше... в частности HasData, как я уже писал выше, более продвинутые Маппинги и т.д. т.е. смысл EF7 не только мультиплатформенность... Entity Framework Core is the new version of Entity Framework after EF 6.x цитата вот отсюда https://www.entityframeworktut... -core.aspx
0
|
||
|
0 / 0 / 0
Регистрация: 30.08.2019
Сообщений: 58
|
|
| 29.10.2019, 11:47 [ТС] | |
|
OK. кто из ПРО, помогите плизз,
![]() проект полностью рабочий и БД создать пару сек...
0
|
|
|
0 / 0 / 0
Регистрация: 30.08.2019
Сообщений: 58
|
|||
| 01.11.2019, 14:14 [ТС] | |||
Кто из ПРО, Нид Хелп;если нет время посмотреть код - подскажите хотя бы где,что почитать более подробно... ![]() кстати модель планирую в web api переделать, но в контексте данной темы это по-мойму ничего не изменит... не пойму как выбранный элемент комбобокса сохранить... Добавлено через 5 часов 2 минуты ![]() ReadAsAsync - без проблем работает в консольном приложении, но здесь вылетает... подозрение, что установлен не правильный Nuget пакет ![]() в данный момент установлен Microsoft.AspNet.WebApi.Client - но с ним зависает.... при этом ReadAsAsync, повторюсь без проблем работает в консольном приложении... если я правильно мыслю, подскажите необходимый Nuget пакет или как исправить, чтобы и здесь заработало
0
|
|||
|
0 / 0 / 0
Регистрация: 30.08.2019
Сообщений: 58
|
||||||||
| 04.11.2019, 10:26 [ТС] | ||||||||
|
теперь пишу так в *.cs -файле
![]() но понимание не пришло... всё работает - список организаций выводится, ![]() но вот как сохранить определенную выбранную в паспорт??? не понятно... здесь всё ровно приходиться обращаться к имени комбобокса "CBorg" и вот как во вью-модель передать выбранную организацию в комбобоксе? ![]() Добавлено через 17 минут
0
|
||||||||
|
WPF Разработчик
463 / 167 / 42
Регистрация: 20.02.2018
Сообщений: 285
|
|||||||||||
| 10.11.2019, 17:08 | |||||||||||
|
trimagick77, поскольку Вы хотите использовать MVVM, вам необходимо создать Model в которой поместите поле WebApi и метод который вернёт список организаций.
Затем Вам необходимо передать эту модель в VM(cкорее всего в VMPassportRawSeed). Добавить свойство и команду
0
|
|||||||||||
|
Ищущий знания
11 / 8 / 4
Регистрация: 31.05.2015
Сообщений: 209
|
|
| 10.11.2019, 18:49 | |
|
trimagick77,
Кликните здесь для просмотра всего текста
PM> Add-Migration MigrName1 Build failed. Не загружается
0
|
|
|
0 / 0 / 0
Регистрация: 30.08.2019
Сообщений: 58
|
||
| 10.11.2019, 20:03 [ТС] | ||
|
внимательно проверьте все ли там пакеты установлены и всё-такое...Net Core 3.0... в любом случае спасибо за готовность помочь ![]() по теме вроде бы разобрался... скачал с github пример готовый, где подобное реализуется...
0
|
||
|
8 / 6 / 4
Регистрация: 02.07.2019
Сообщений: 77
|
|||||||||||
| 10.11.2019, 20:36 | |||||||||||
|
Так же бьюсь с этим вопросом.
Это Вью. В нем есть сомбоБокс, загружающий информацию об организациях из OservableCollection, по выбору организации я хочу загрузить департаменты, содержащиеся в этой организации в листБокс под ним. Как получить во вьюМодел выбранную организацию? Читал Метанит, статью о MVVM, повторял. Там выбор телефона передается биндингом. Тут не получается. Я может что то не правильно делаю?((
0
|
|||||||||||
|
WPF Разработчик
463 / 167 / 42
Регистрация: 20.02.2018
Сообщений: 285
|
|
| 10.11.2019, 21:58 | |
|
Alessey и trimagick77, в посте Alessey, почти есть ответ о том как получить выбранный объект.
Он использует свойство зависимости ComboBox.SelectedItem что хранит UI элемент, который отображает выбранный объект Что бы получить выбранную сущность/объект, вам надо подвязаться на свойство зависимости ComboBox.SelectedValue. Соответственно это будет работать с любыми контролами у которых есть свойство зависимости SelectedValue. Довольно интересно то, что после того как вы подвязали своё свойство на ComboBox.SelectValue через Binding, вы автоматически получаете событие о том, что пользователь сделал выбор в мутатор свойства (Setter)
1
|
|
|
8 / 6 / 4
Регистрация: 02.07.2019
Сообщений: 77
|
|
| 10.11.2019, 22:12 | |
|
Но почему то я не могу использовать выделенный объект(( Что не так я сделал? Может быть я не правильно заполняю список для вывода... Но я пробовал с помощью for() заполнять и тоже не работало. И с линком не работает((
0
|
|
|
WPF Разработчик
463 / 167 / 42
Регистрация: 20.02.2018
Сообщений: 285
|
|
| 10.11.2019, 22:17 | |
|
Alessey, Вы исправили привязку на свойство зависимость?
Поскольку у Вы в вашем коде привязываетесь к SelectedItem, а надо к SelectedValue
1
|
|
| 10.11.2019, 22:17 | |
|
Помогаю со студенческими работами здесь
20
Как получить индекс элемента или сам обьект в DataGrid WPF(MVVM)? Я теряю данные на пути Controller-View-Controller. Как правильно получить модель из представления? Тестовое MVVM приложение не отрисовывает вью Передача значения из View (DropDownListFor) в модель
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|