In MainWindow abbiamo:Josh Smith MVVM Demo
<HeaderedContentControl
Content="{Binding Path=Workspaces}"
ContentTemplate="{StaticResource WorkspacesTemplate}"
Header="Workspaces"
Style="{StaticResource MainHCCStyle}"
/>
Negli risorse:
<DataTemplate x:Key="WorkspacesTemplate">
<TabControl
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding}"
ItemTemplate="{StaticResource ClosableTabItemTemplate}"
Margin="4"
/>
</DataTemplate>
E nel articolo dice:
A DataTemplate digitato non ha a x: valore chiave assegnato ad esso, ma ha la sua proprietà DataType impostata su un'istanza della classe Tipo . Se WPF cerca di rendere uno dei tuoi oggetti ViewModel, sarà controllo per vedere se il sistema di risorse ha un DataTemplate digitato in ambito cui tipo di dati è la stessa (o una classe base di) il tipo di ViewModel opporsi . Se ne trova uno, utilizza tale modello per il rendering dell'oggetto ViewModel a cui fa riferimento la proprietà Contenuto dell'elemento di tabulazione.
La mia domanda è:
Come si fa il modello sa che il tipo è un insieme di aree di lavoro (WorkspaceViewModel)?
In alcune definizioni di template ho visto questo (nello stesso progetto): Che cos'è TargetType? –
Sturm
Quando si aggiunge il tipo di destinazione non è necessario specificare il modello nel controllo elementi, wpf cercherà automaticamente un modello con il tipo di target relvant, è solo un'altra opzione. La migliore pratica è usare entrambi. –