Выбор usercontrol для соответствующей таблицы данных в mvvm - PullRequest
0 голосов
/ 15 марта 2010

У меня есть, скажем, WeeklyViewUserControl.xaml и DailyViewUserControl.xaml.

Обычно я использовал такие вещи для переключения контента:

 <DataTemplate DataType="{x:Type ViewModel:LessonPlannerViewModel}">
        <View:LessonPlannerDailyUC/>
    </DataTemplate>

Это сработало до сих пор. Но теперь у меня все еще есть WeeklyViewUC, который использует 90% кода LessonPlannerViewModel, поэтому я хочу сделать это дополнительно:

<DataTemplate DataType="{x:Type ViewModel:LessonPlannerViewModel}">
        <View:LessonPlannerWeeklyUC/>
    </DataTemplate>

но это не может работать, потому что откуда ContentControl

знаете, что виртуальная машина (LessonPlannerViewModel) должна отображать DailyViewUC или WeeklyViewUC?

   <ContentControl Content="{Binding VM}" /> 

Это мой дальнейший сценарий:

DailyViewUC имеет кнопку «Просмотр недели», которая выполняется с помощью Command = "{...}" для команды в LessonPlannerViewModel.

В WeeklyViewUC есть кнопка «Ежедневный просмотр» ...

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

Как я могу это сделать?

1 Ответ

2 голосов
/ 15 марта 2010

Вы можете создать DataTemplateSelector и назначить его для свойства ContentTemplateSelector ContentControl.

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