Mam TabControl
kontrolęDodawanie TabItems dynamicznie
<TabControl Name="Farms_myVillages"
ItemsSource="{Binding Villages}">
</TabControl/>
w kodzie za dodać kilka kart dynamicznie do TabControl
następująco:
foreach (Village vill in Villages)
{
TabItem tab = new TabItem();
tab.Header = vill.Name;
VillageUserControl c = new VillageUserControl();
c.DataContext = vill;
tab.Content = c;
Farms_myVillages.Items.Add(tab);
}
gdzie VillageUserControl
jest UserControl
które dotyczą określonego wioska. Ten kod działa poprawnie i uzyskuje oczekiwane rezultaty ...
Problem polega na tym, że nie chcę, aby kod ten znajdował się w kodzie, ale tylko w samym xaml
.
próbuję to:
<TabControl Name="Farms_myVillages"
ItemsSource="{Binding Villages}">
<TabControl.ItemContainerStyle>
<Style TargetType="TabItem">
<Setter Property="Header" Value="{Binding Name}"/>
<Setter Property="Content">
<Setter.Value>
<u:VillageUserControl DataContext="{Binding}"/>
</Setter.Value>
</Setter>
</Style>
</TabControl.ItemContainerStyle>
</TabControl>
Po uruchamiania go zgłasza wyjątek: „określony element jest już logiczne dzieckiem innego elementu odłącz go w pierwszej kolejności.”
Czy coś mi umknęło? Proszę pomóżcie mi tutaj ...
Tak, dziękuję HB z całego serca. .. –
Nie ma za co, cieszę się, że pomogło :) (Na marginesie: Możesz zaznaczyć odpowiedzi poprzez kontur znaczka, który pojawia się, gdy przesuniesz mysz poniżej głosów po lewej stronie, do tej pory nie zaakceptowałeś żadnych odpowiedzi twoje pytania, możesz chcieć je przejrzeć i zaakceptować odpowiedź, która pomogła najbardziej) –
tak, zrobiłem to, naprawdę to jest dobre stronie internetowej.. –