Это нормально, если моя ViewModel «создает» привязываемые пользовательские элементы управления для моего View? - PullRequest
2 голосов
/ 23 мая 2010

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

Я думаю, что самый простой способ спроектировать эту страницу - это заставить ViewModel точки входа создавать и представлять коллекцию представлений, чтобы View-point могла просто привязываться к элементам пользовательского элемента управления, используя DataTemplate на элементе управления вкладкой ,

Можно ли ViewModel создавать экземпляры и предоставлять элементы пользовательского интерфейса для своего представления?

1 Ответ

2 голосов
/ 23 мая 2010

Это сложный вопрос, но большинство людей из MVVM считают это запахом кода.

ViewModel не должен заботиться о деталях реализации пользовательского интерфейса. ( Разделение интересов )
Это просто выходит за рамки.

Я знаю, иногда трудно сделать это иначе. (Особенно для элементов управления с несвязываемыми свойствами, такими как свойство Document в RichTextBox.)
Если бы вы поделились более подробной информацией о вашей идее, я мог бы рассказать подробнее, но вот что я думаю:

Что мешает вам создать эти подвиды в XAML? Я определенно определил бы весь свой код View отдельно от ViewModels. ( Это даже смысл модели ViewModel. )
Если вы определите эти представления в XAML элемента управления вкладкой, вы можете привязать к их DataContext объекты, которые вы хотите использовать в качестве их ViewModel, из ViewModel представления элемента управления вкладкой.

Вы можете прочитать мои общие мысли о MVVM в этом ответе .

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