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 ответ

В идеале у вас должны быть отношения один к одному между представлением и моделью представления.

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

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

Другие вопросы по тегам