Модель доступа MVVM из представления - PullRequest
5 голосов
/ 26 ноября 2010

Я новичок в .net и MVVM designmodel.Я застрял сейчас, потому что в файле codebehind одного из моих Views мне нужно получить соответствующую Model в качестве объекта.Как здесь отношения?Возможно ли это, и это "правильный способ сделать это"?

Ответы [ 4 ]

5 голосов
/ 26 ноября 2010

Представление должно получить доступ к ViewModel, который оборачивает модель, скрывая ее от представления.Если вам нужен доступ к свойствам модели из представления, получите ViewModel, чтобы представить их как свойства, с которыми можно связать представление.

2 голосов
/ 02 декабря 2010

MVVM не запрещает View напрямую обращаться к модели.Это распространенное недоразумение в сообществе MVVM.

Ваша ViewModel может предоставить базовую модель, чтобы View мог напрямую обращаться к модели.

Связывание:

{Binding Model.Title}

КодНиже:

((MyViewModel)DataContext).Title

Пример приложения ViewModel (EmailClient) WPF Application Framework (WAF) показывает, как получить доступ к моделис точки зрения.

1 голос
/ 26 ноября 2010

ViewModel не должен абсолютно ничего знать о представлении. Представление должно использовать только привязку данных, поэтому не нужно знать модель или ViewModel.

Если вам нужно взаимодействовать с представлением, все это должно быть через DataBinding . Только в исключительных случаях вы должны прибегнуть к коду.

Итак, свойство в ViewModel и привязывают к представлению.

0 голосов
/ 26 ноября 2010
public partial class MyView : Window
{
     private MyViewModel aModel;

     public MyView()
     {
         InitializeComponent();
         aModel = new MyViewModel();
         this.DataContext = aModel();
}

Теперь представление изменит свои привязки к элементам управления, которые связаны с общими свойствами ViewModel.

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