Есть данные: Код | class C { List<B> b; ... }
class B { string Bname; List<A> a; ... }
class A { string Aname; string field; ... } |
Я хочу сделать так: в ТабКонтроле создаются табы на основе коллекции C.b (названия табов из Bname), в зависимости от выбора таба содержимое вкладки заполняется коллекцией B.a. Вот последнее, до чего я добрался: Код | public MainWindow() { InitializeComponent(); _tabControl.ItemsSource = C.b; } |
Код | <TabControl x:Name="_tabControl"> <TabControl.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Bname}"/> </DataTemplate> </TabControl.ItemTemplate> <TabControl.ContentTemplate> <DataTemplate> <ListBox DataContext="{Binding ElementName=_tabControl, Path=SelectedItem.a}"> <ListBox.ItemTemplate> <DataTemplate> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <DockPanel Grid.Column="0"> <TextBlock Text="{Binding Aname}"/> </DockPanel> <DockPanel Grid.Column="1"> <TextBox Text="{Binding field}"/> </DockPanel> </Grid> </DataTemplate> </ListBox.ItemTemplate> </ListBox> </DataTemplate> </TabControl.ContentTemplate> </TabControl> |
Это не работает. Максимум, чего мне удавалось добиться различными манипуляциями - в содержимом вкладке отображался первый элемент из коллекции "a" выбранной вкладки.
|