Są moich klas:Jak zaprojektować stronę TabPage, gdy pozycja ItemsSource TabControl jest powiązana z listą w WPF?
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; }
}
a to mój MainWindow kod Xaml:
<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>
Teraz oczywiście będę miał TabControl
z jednej strony dla każdego elementu na liście F
a wszystkie strony TabControl
mają TextBlock
Coś 1 jak pokazano poniżej:
czego chcę jest zaprojektowanie tylko jedną ze stron. powiedz: dodaj nową button
do strony o nazwie Camel o nazwie Something 3.
Tworzenie konkretny ViewModel dla każdego i użyj 'DataTemplates' na podstawie każdego typu ViewModel. Zobacz [mój przykład] (http://stackoverflow.com/a/15910760/643085) –
Po prostu wiem, czy rozumiem, ta linia [''] mówi 'WPF', że dla wszystkich stron Tab, które są typu T (tutaj FileSection) DataTemplate będzie następująca. i muszę dodać moje kontrole poniżej tej linii. Czy mam rację? –
Zgadza się. Następnie tworzysz określony widok dla każdego. –