Я хочу использовать MVVM в приложении, где разные страницы являются TabItems.
Для этого я использую наблюдаемую коллекцию моих моделей представлений (Items) и привязываю ее к tabcontrols ItemSource.
Для каждой модели представления я создал отдельный шаблон данных для отображения правильного представления следующим образом:
<DataTemplate DataType="{x:Type baseVm:AViewModel}">
<baseVw:AView />
</DataTemplate>
Чтобы отобразить правильное имя в заголовке вкладки, я создал другой шаблон данных, который будет применяться к каждому изэлементы элемента управления вкладками:
<DataTemplate x:Key="ViewModelTabTemplate">
<DockPanel>
<ContentPresenter Content="{Binding Path=Name}"/>
</DockPanel>
</DataTemplate>
Элемент управления вкладками выглядит следующим образом:
<TabControl x:Name="myTabControl"
ItemsSource="{Binding Items}"
ItemTemplate="{DynamicResource ViewModelTabTemplate}">
</TabControl>
Теперь я хочу включить / отключить вкладки из модели представления, содержащейколлекция.Базовый класс модели представления содержит свойство зависимости IsEnabled, и я хотел бы связать это с представлениями.Если я сделаю это прямо в виде, подобном следующему:
IsEnabled="{Binding IsEnabled, FallbackValue=true}"
, содержимое вкладки будет отключено, когда я поверну свойство IsEnabled в false.Но что я действительно хочу, так это отключить вкладку вкладки, а не только ее содержимое.
Спасибо за любую помощь!