将项目树展平为WPF中的一个列表框

时间:2012-01-13 19:12:56

标签: wpf xaml listbox tree

我现在使用以下代码编写了一个很好的包装ListBox:

<ListBox ItemsSource="{Binding SomeTreeItem.List}">
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel Orientation="Horizontal" IsItemsHost="True" />
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
    <ListBox.Template>
        <ControlTemplate>
            <ScrollViewer>
                <ItemsPresenter />
            </ScrollViewer>
        </ControlTemplate>
    </ListBox.Template>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <!-- my template for each listbox item -->
        </DateTemplate>
    </ListBox.ItemTemplate>
</ListBox>

我的原始数据结构看起来像这样(我希望在我的视图中每个项目都是ListBoxItems

MyTree
-> Item 1
-> Item 2
-> Item 3

我的绑定现在已改为:

MyTree
-> SubTree 1
   -> Item 1
   -> Item 2
-> SubTree 2
   -> Item 1
   -> Item 2
   -> Item 3

我应该如何修改代码以便成为这种情况?我想我需要添加一个ItemsControl来迭代我的子树,但是我如何确保它们都被添加到父ListBox并因此正确包装?

谢谢!

0 个答案:

没有答案