Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Binding a nested ListBox to a nested List?

I have the following ViewModel-Property:

public List<List<string>> Names .... //It's a dependency property

In my view I would like an ItemsControl that has an ItemsControl:

 <ItemsControl ItemsSource="{Binding Names}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <ItemsControl ItemsSource="{Binding ?????}">
                    <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                            <StackPanel Orientation="Horizontal" />
                        </ItemsPanelTemplate>
                    </ItemsControl.ItemsPanel>
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <Label Text="{Binding ??????}" />
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>

How can I bind to the items of the List? In code sampel above I marked it with ?????

like image 423
WaltiD Avatar asked Nov 28 '11 14:11

WaltiD


1 Answers

Simply use binding to the current Binding Source:

ItemsSource="{Binding}"

See some comments below:

<ItemsControl ItemsSource="{Binding Names}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <! -- Here is the current binding source will be inner
                      List<string> 
                -->
                <ItemsControl ItemsSource="{Binding}">
                    <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                            <StackPanel Orientation="Horizontal" />
                        </ItemsPanelTemplate>
                    </ItemsControl.ItemsPanel>

                    <! -- Here is the current binding wource will be 
                          a string value from the inner List<string>
                    -->
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <Label Text="{Binding}" />
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
like image 115
sll Avatar answered Nov 15 '22 19:11

sll