Desidero utilizzare MVVM in un'applicazione in cui le diverse pagine sono TabItems.Abilitare un oggetto TabItem tramite Binding
Per questo utilizzo una raccolta osservabile dei miei modelli di vista (elementi) e la leghiamo al controllo numerico ItemSource.
Per ogni modello di vista, ho creato un modello di dati individuali per rendere la corretta visione in questo modo:
<DataTemplate DataType="{x:Type baseVm:AViewModel}">
<baseVw:AView />
</DataTemplate>
Per visualizzare il nome corretto nel titolo della scheda ho creato un altro modello di dati da applicare a ciascuno di gli elementi del controllo scheda:
<DataTemplate x:Key="ViewModelTabTemplate">
<DockPanel>
<ContentPresenter Content="{Binding Path=Name}"/>
</DockPanel>
</DataTemplate>
il controllo scheda aspetto:
<TabControl x:Name="myTabControl"
ItemsSource="{Binding Items}"
ItemTemplate="{DynamicResource ViewModelTabTemplate}">
</TabControl>
Quello che voglio fare ora è abilitare/disabilitare le tabulazioni all'interno del modello di vista che contiene la raccolta. La classe base del modello di vista contiene una proprietà di dipendenza IsEnabled e vorrei associarla alle viste. Se faccio questo direttamente nella vista in questo modo:
IsEnabled="{Binding IsEnabled, FallbackValue=true}"
contenuto della scheda viene disattivato quando accendo la proprietà IsEnabled su false. Ma quello che voglio veramente è anche disabilitare la tabpage e non solo il contenuto.
Grazie per qualsiasi aiuto!
+1 Questo è il modo per farlo :) – dowhilefor
Grazie mille! Questo è esattamente quello che stavo cercando. – tabina
Contento di aver potuto aiutare! :) – Dror