通过CellTemplate在ListView中的## WPF TreeView

时间:2014-05-21 14:25:44

标签: c# wpf listview treeview celltemplate

我是WPF和XAML的新手..

我想使用CellTemplate将TreeView添加到ListView元素中。

我想将每个ListViewItem绑定到名为“Symbol”的Custom类

此类具有名为“Name”的属性和名为“Images”的属性。

“Name”只是一个String,它应该是TreeView的根元素..

“图片”是一个字符串列表。

此列表的每个条目都应该是此TreeView的子项..

请不要只留下代码片段,我想了解CellTemplates的工作方式!

谢谢!

<Grid>
    <ListView x:Name="listview" HorizontalAlignment="Left" Height="326" Margin="0,33,0,0" VerticalAlignment="Top" Width="499">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Symbols" Width="200"  >
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <StackPanel>
                                <TreeView>
                                <!--
                                    what to be done here?
                                -->
                                </TreeView>
                            </StackPanel>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
            </GridView>
        </ListView.View>
    </ListView>
    <Border BorderBrush="Black" BorderThickness="1" HorizontalAlignment="Left" Height="250" Margin="504,33,0,0" VerticalAlignment="Top" Width="250">
        <Border x:Name="image_preview" HorizontalAlignment="Center" Height="250" VerticalAlignment="Center" Width="250"/>
    </Border>

</Grid>

1 个答案:

答案 0 :(得分:0)

首先,您应该将ListView绑定到Symbol个对象的集合。 现在,ListView的每个单元格都绑定到Symbol个对象。如果我理解正确,则每个Symbol应为TreeView,其根节点标题显示Name属性,子集合显示Images个字符串。

这可以通过这种方式实现:

<TreeView >
    <TreeViewItem Header="{Binding Name}" ItemsSource="{Binding Images}" />    
</TreeView>