Включение TabItem через привязку

Я хочу использовать MVVM в приложении, где разными страницами являются TabItems.

Для этого я использую наблюдаемую коллекцию моих моделей представления (Items) и привязываю ее к элементу управления вкладками 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. Но на самом деле я хочу также отключить вкладку страницы вкладок, а не только ее содержимое.

Спасибо за любую помощь!

10
задан tabina 14 February 2012 в 23:59
поделиться