jqwha
jqwha

Reputation: 1679

Windows Explorer style view of simple hierarchical data

I need to display a simple "list of lists" on a WPF form where, for each parent row, the children are displayed in a horizontal wrappanel - could someone please help with required XAML?

e.g. Hierarchical data such as:

class Parent { public string Key; public List<Child> Children; }
class Child { public string Name; }

The desired display would be (K/Key, N/Name):

|K1    N1 N2 N3|
|      N4 N5   |
|K2    N1 N2   |

I'm fairly new to WPF, I tried things like:

<ListView Name="lv" Binding="myParentList">
    <ListView.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBlock Text="{Binding Key}"/>
                <ListView ItemsSource="{Binding myParentListItems}">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <WrapPanel Orientation="Horizontal">
                                <TextBlock Text="{Binding Name}" />
                            </WrapPanel>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
            </StackPanel>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

Thanks!

Upvotes: 0

Views: 212

Answers (1)

pseudoDust
pseudoDust

Reputation: 1386

try:

<ListView Name="lv" Binding="myParentList">
    <ListView.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Key}"/>
                <ListView ItemsSource="{Binding myParentListItems}">
                    <ListView.ItemsPanel>
                        <ItemsPanelTemplate>
                            <WrapPanel Orientation="Horizontal">

                            </WrapPanel>
                        </ItemsPanelTemplate>
                    </ListView.ItemsPanel>
                    <ListView.ItemTemplate>
                        <Template>
                            <TextBlock Text="{Binding Name}" />
                        <Template>
                    </ListView.ItemTemplate>
                </ListView>
            </StackPanel>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

Upvotes: 1

Related Questions