我有一个像这样的TreeView:
<TreeView Name="tvObjects" Padding="0,5,0,0" Grid.Row="2">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Nodes}">
<StackPanel Orientation="Horizontal" Margin="4,3" ContextMenu="{Binding Converter={StaticResource NodeTypeToContextMenuConverter}}">
<Image Source="{Binding Converter={StaticResource StringToImageConverter}}" />
<TextBlock Text="{Binding Title}" Padding="4,0,0,0" />
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
它的绑定如下:
tvObjects.Items.Clear();
var root = new Node("SQLite", NodeType.SQLite);
// add db nodes, with sub nodes
tvObjects.Items.Add(root);
我不想显示根节点,而只显示它的子节点。目前看起来像:
我希望它看起来像:
注意它必须是分层的。
如果您不想要根节点,只需不要将其添加到 Items 集合中。 将数据库节点直接添加到 Items 集合中:
var node = new Node("main", NodeType.Whatever);
// add sub nodes.
tvObjects.Items.Add(node);
var anotherNode = new Node("chin ook", NodeType.Whatever);
// add sub nodes.
tvObjects.Items.Add(anotherNode);
如果您能展示如何删除节点,我们将不胜感激。看来不是那么直接,不会被删除。