|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
||||||
Как поднять RaisepropertyChanged отдельного свойства извне?24.09.2020, 18:09. Показов 8172. Ответов 100
Метки нет (Все метки)
Здравствуйте.
Вот такого вида свойство.
0
|
||||||
| 24.09.2020, 18:09 | |
|
Ответы с готовыми решениями:
100
Как изменить свойства ComboBox из отдельного потока Какие общие правила для написания отдельного класса/файла с условием/заданием и отдельного класса с методом решен? PropertyGrid. Как отловить видимость свойства в зависимости от другого свойства? |
|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
|
| 18.10.2020, 21:19 [ТС] | |
|
0
|
|
|
Модератор
|
||||||||||||||||||||||
| 18.10.2020, 21:56 | ||||||||||||||||||||||
|
Вы уверены? Посмотрите в "Динамическом обозревателе свойств" во время исполнения программы. DataContext у DialogWindow пустой. Может вы хотели туда, что-то за писать, но по факту этого не сделано. Но суть это не важно. В любом случае надо придумать механизм передачи во DialogWindow способа вызова Load().Вариантов несколько. И концептуальный выбор одного из них зависит от архитектуры Решения, задачи, функции этого меода. Если исходить из того, что для View этот метод инкапсулирован в команде главной VM и не важно, что он делает, то можно инициализировать главную VM в Ресурсах App и биндиться к команде напрямую из любого Окна.
0
|
||||||||||||||||||||||
|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
|
| 18.10.2020, 22:10 [ТС] | |
|
0
|
|
|
Модератор
|
||
| 18.10.2020, 22:16 | ||
![]() Это Контекст Данных Времени Разработки. А во Время Исполнения у вас DataContext пустой. Для выявления подобных багов используйте "Визуальное динамическое дерево" и "Динамический обозреватель свойств". Допустим, мне влазить в дебри кода для ответа на ваш вопрос не надо. Я запустил приложение, открыл Окно, посмотрел "Динамический обозреватель свойств". DataContext - пустой. Всё. Если так не должно быть - это уже другой вопрос.
0
|
||
|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
||
| 18.10.2020, 22:32 [ТС] | ||
|
А просто нельзя сделать экземпляр VM и запускать ее методы из другого класса? Добавлено через 9 минут Красиво можно как-то сделать из CB диалога запустить Load();
0
|
||
|
Модератор
|
|||
| 18.10.2020, 22:45 | |||
|
Что не так с ним? Добавлено через 1 минуту Можно обратиться, но это точно не будет "красиво". Это будут костыли.
0
|
|||
|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
|||||||
| 18.10.2020, 22:51 [ТС] | |||||||
![]() Но я не могу использовать его у себя т.к. профукал, что DataContext у DailogWindow занят. А у вас все через него идет. DialogWindow.xaml.cs
0
|
|||||||
|
Модератор
|
|
| 18.10.2020, 23:11 | |
|
Тогда не понял вашего вопроса
сделать экземпляр VM и запускать ее методы из другого класса?Этот экземпляр уже есть в основном окне, но в Диалоговое в контекст данных его не установишь - он у вас будет использоваться для других целей. Но как-то же надо передать Диалогу ссылку на экземпляр. Самый просо способ сделать это через Ресурсы App - они общие для всех окон. Я показал выше как это сделать. Чем такой вариант не устраивает?
0
|
|
|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
|||||||||||
| 18.10.2020, 23:18 [ТС] | |||||||||||
|
Я могу просто сделать так.
В CB диалогового окна.
Так как DataContext Диалога занят ваш способ не пойдет. Есть еще какие-то варианты?
0
|
|||||||||||
|
Модератор
|
|||
| 18.10.2020, 23:26 | |||
|
Это будут разные экземпляра. Вам нужен не любой экземпляр этого типа, а именно тот который используется Главным Окном. Поэтому экземпляр должен создаваться в слое "над" Окнами. И оба Окна должны его получать от из вне. Самое простое и логичное место для этого экземпляра - это ресурсы App. Добавлено через 2 минуты В посте инициализировать главную VM в Ресурсах App и биндиться к команде напрямую из любого Окна не используется DataContext Диалогового Окна.
0
|
|||
|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
||
| 23.10.2020, 14:03 [ТС] | ||
Даже я это знаю.
0
|
||
|
Модератор
|
||
| 23.10.2020, 14:10 | ||
|
В современном WPF принято хранить Данные в Model. А в UI контролах только привязки получающие через ViewModel значения Данных.
1
|
||
|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
|||||||
| 23.10.2020, 16:52 [ТС] | |||||||
|
Элд Хасп,
и на синтакс жалуется. Запятые после Default. Добавлено через 1 час 34 минуты ошибка.
0
|
|||||||
|
Модератор
|
||||||||
| 23.10.2020, 19:02 | ||||||||
|
Вам же не нужны значения. Вам нужно только имя свойства. Используйте другую перегрузку:
0
|
||||||||
|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
|
| 23.10.2020, 19:26 [ТС] | |
|
0
|
|
|
Модератор
|
||
| 23.10.2020, 19:31 | ||
|
Использую так сказать "на ощупь" - исходя из общих принципов построения Net, WPF, MVVM. В тот раз, наверное, "попала под руку" та перегрузка - я даже не обратил внимания. У меня они все работают нормально.
0
|
||
|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
||
| 23.10.2020, 20:47 [ТС] | ||
|
Элд Хасп, вопрос все еще открыт. Как все-таки поднять метод Load, если DataContext у DialogWindow занят?
0
|
||
|
-12 / 24 / 4
Регистрация: 22.06.2020
Сообщений: 376
|
|
| 23.10.2020, 21:00 [ТС] | |
|
если создаешь экземпляр ViewModel , то метод исполняется, но в холостую.
0
|
|
|
Модератор
|
|
| 23.10.2020, 22:15 | |
|
0
|
|
| 23.10.2020, 22:15 | |
|
Как выставить значение true свойства MdiList для пункта меню ArrangeIcons в menuStrip, если там этого свойства нет? Как сделать доступ извне Как передать код компилятору извне? Как извне подключиться к ftp localhost?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|