2015-05-16 2 views
0

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

С текущего паттерна MVVM я использую, я могу связать только с определенной точки зрения, в то время в MainWindow.xaml

Я был бы признателен, если кто-нибудь может подтолкнуть меня к правильном направлении, что делать. Спасибо

+0

Вы после многих видов связаны с одной и той же моделью зрения или полностью разделены? – kidshaw

+0

Я думаю, что и то и другое, Pls, потому что бывают случаи, когда я думаю, что если бы одна точка зрения могла связывать разные взгляды, это иногда помогало бы приложению, но в других случаях они настолько независимы, что бессмысленно иметь их в одной и той же viewmodel –

ответ

1

Этот подход должен работать как для общей модели представления, так и для разделов.

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

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

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

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

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

0

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

Вот статья, которую я использовал в прошлом, чтобы вы начали: MVVMLight Using Two Views.

Вы также можете посмотреть на это question для получения дополнительной информации о работе с несколькими окнами.

Смежные вопросы