Quiero usar MVVM en una aplicación donde las diferentes páginas son TabItems.Habilitar un TabItem mediante Enlace
Para esto utilizo una colección observable de mis modelos de vista (Artículos) y la ato a los controles de tabla ItemSource.
Para cada modelo de vista, he creado una plantilla de datos individual para representar el punto de vista correcto de esta manera:
<DataTemplate DataType="{x:Type baseVm:AViewModel}">
<baseVw:AView />
</DataTemplate>
Para mostrar el nombre correcto en el encabezamiento de la pestaña creé otra plantilla de datos que se aplicará a cada una de elementos de la tarjeta de registro:
<DataTemplate x:Key="ViewModelTabTemplate">
<DockPanel>
<ContentPresenter Content="{Binding Path=Name}"/>
</DockPanel>
</DataTemplate>
el control de ficha se ve así:
<TabControl x:Name="myTabControl"
ItemsSource="{Binding Items}"
ItemTemplate="{DynamicResource ViewModelTabTemplate}">
</TabControl>
Lo que quiero hacer ahora es habilitar/deshabilitar pestañas dentro del modelo de vista que contiene la colección. La clase base del modelo de vista contiene una propiedad de dependencia IsEnabled y me gustaría vincular esto a las vistas. Si hago esto directamente en la vista de la siguiente manera:
IsEnabled="{Binding IsEnabled, FallbackValue=true}"
contenido de la etiqueta se desactiva cuando se enciende la propiedad IsEnabled a falso. Pero lo que realmente quiero es desactivar también la pestaña del tabulador y no solo el contenido.
¡Gracias por cualquier ayuda!
+1 Esa es la manera de hacerlo :) – dowhilefor
Muchas gracias! Eso es exactamente lo que estaba buscando. – tabina
Me alegro de poder ayudar! :) – Dror