Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Вложенная привязка коллекции внутри TabControl


Автор: aush 17.7.2011, 17:08
Есть данные:

Код
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" выбранной вкладки.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)