Das sind meine Klassen:Wie wird eine TabPage entworfen, wenn die ItemsSource der TabControl an eine Liste in WPF gebunden wird?
class mainViewModel
{
public List<Foo> F { get; set; }
public mainViewModel()
{
F=new List<Foo>()
{
new Foo(new Animal(){Name = "Cat"}),
new Foo(new Animal(){Name = "Dog"}),
new Foo(new Animal(){Name = "Camel"})
};
}
}
public class Foo
{
public Animal Animal { get; set; }
public Foo(Animal animal)
{
Animal = animal;
}
}
public class Animal
{
public string Name { get; set; }
}
und das ist mein Hauptfenster XAML-Code:
<TabControl ItemsSource="{Binding Path=F}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Animal.Name}"/>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<TextBlock Text="Something 1"/>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
Jetzt offensichtlich werde ich für jeden Eintrag in der Liste eine TabControl
mit einer Seite hat F
und alle TabControl
Seiten haben eine TextBlock
Etwas 1 wie hier gezeigt:
, was ich will, ist nur eine der Seiten zu entwerfen. sagen Sie hinzufügen neue button
auf der Kamelseite Something 3.
ein spezifisches Ansichtsmodell für jeden erstellen Registerkarte, und verwenden Sie 'DataTemplates' basierend auf jedem ViewModel-Typ. Siehe [mein Beispiel] (http://stackoverflow.com/a/15910760/643085) –
Nur um zu wissen, ob ich verstanden habe, diese Zeile [''] erzählt 'WPF', dass für alle TabPages vom Typ T (hier FileSection) das DataTemplate wie folgt ist. und ich muss meine Kontrollen unter dieser Linie hinzufügen. Habe ich recht? –
Das stimmt. Dann erstellen Sie für jede eine bestimmte Ansicht. –