Как использовать MVVM из Windows Forms для отображения элемента управления WPF - PullRequest
5 голосов
/ 10 марта 2011

У меня есть требование для интеграции элемента управления WPF в существующее приложение Windows Forms.Самый простой и легкий способ сделать это - создать элемент управления ElementHost и установить для его свойства Child мой WPF View.Это работает нормально, представление отображается.

Однако взаимодействие с представлением тогда немного обременительно и требует изменения полей и вещей в коде представлений позади.Что было бы лучше, если бы я мог создать экземпляр модели представления базового представления и взаимодействовать с ней способом MVVM, обеспечив отображение и обновление представления всякий раз, когда я изменяю свойства его модели представления.

Кто-нибудь знаетспособ сделать это?

Ответы [ 2 ]

5 голосов
/ 10 марта 2011

Вы не можете сделать это с конструктором, но, добавив в код дочерний элемент вашего ElementHost, вы можете напрямую создавать и назначать ViewModel. Когда вы фиксируете изменения в этой модели представления, они напрямую отражаются в представлении WPF.

MyView view = new MyView();
MyViewModel model = new MyViewModel();
view.DataContext = model;
ElementHost.Child = view;


model.SomeBoundProperty = somethingElse;
//Magic update of the WPF view
0 голосов
/ 10 марта 2011

Суть MVVM - обязательна. Так как в Windows Forms такого нет, боюсь, вы не сможете использовать MVVM там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...