DataTemplate DataType использование WPF
Я настраивал DataContext для UserControls следующим образом:
<uc:DepartmentListingView DataContext="{Binding ., Mode=TwoWay}" />
Основываясь на примере проекта Джоша Смита, я пытаюсь сделать то же самое с помощью DataTemplate и DataType:
<!-- Template applies a DepartmentListingView to an instance of the DepartmentSelectionViewModel class. -->
<DataTemplate DataType="{x:Type model:DepartmentSelectionViewModel}">
<uc:DepartmentListingView />
</DataTemplate>
Это хорошо работает, но, конечно, есть проблема; Я думаю, что это может возникнуть из-за попытки установить более одного представления (UserControl) для одной и той же модели представления (?). В приведенном ниже коде я теперь ассоциирую ту же модель представления сверху с другим представлением в том же окне.
<DataTemplate DataType="{x:Type model:DepartmentSelectionViewModel}">
<uc:ListSubjectHeaderView />
</DataTemplate>
Первое представление подключается так же, как было, когда я явно устанавливал DataContext, но последнее представление не получает привязки, хотя в консоли также нет явной ошибки DataBinding.
Итак, будет ли проблема повторного использования трюка DataType / DataTemplate таким образом?
Спасибо,
Berryl
1 ответ
В идеале у вас должны быть отношения один к одному между представлением и моделью представления.
Чтобы получить то, что вы хотите, возможно, создайте подкласс для вашей модели представления, не имея ничего лишнего, и используйте эту модель подкласса в качестве типа данных в шаблоне данных.
Таким образом, простое создание правильной модели представления приведет к правильной табличке данных и, следовательно, к управлению пользователями