Динамическое управление в WPF MVVM - PullRequest
1 голос
/ 27 марта 2011

У меня есть приложение с MVVM, которое работает нормально. Теперь я хочу заменить один из моих элементов управления динамическим. Под динамикой я подразумеваю, что я понятия не имею, что это за элемент управления, только что это элемент управления с графическим интерфейсом. Это может быть что-то простое, например изображение, или пользовательский пользовательский элемент управления, созданный третьим лицом после создания этого приложения.

Может кто-нибудь пролить свет на то, как этого можно достичь в MVVM? Я делал это раньше, используя ListBox или аналогичный (iirc) для генерации элементов графического интерфейса (не помню деталей). Но на этот раз я хотел бы изучить теорию, стоящую за этим.

Edit:
Допустим, представление содержит список экземпляров, например, System.Windows.UIElement. Я хочу отобразить все эти элементы управления пользовательским интерфейсом на поверхности (например, в сложенном элементе управления).

1 Ответ

1 голос
/ 27 марта 2011

Вы можете создать представление, которое отображает свойство Content в качестве заполнителя (таким образом, ContentControl может быть всем, что нужно). Свойство content может быть затем установлено в динамический элемент управления.

Вы должны добавитьнебольшое отражение для динамической загрузки сборки и создания экземпляра необходимого элемента управления.

Динамически загружаемый элемент управления должен был бы получить доступ к данным с помощью свойства DataContext.Если динамический элемент управления тоже MVVM, он может иметь свою собственную ViewModel, поэтому вам придется найти способ загрузить его (снова рефлексия?) И указать DataContext элемента управления на загруженную ViewModel.

имеет смысл, это то, что вы ищете?

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