【发布时间】:2014-03-07 12:24:15
【问题描述】:
我有Server,它有一个Databases 的列表。
我有Database,其中有Tables 和Views 的列表。
我在Database 上有一个名为Children 的助手属性,它由Tables 和Views 之间的Union 组成。
下面是我的TreeView Xaml,效果很好!除了,我想有一个Tables 和Views 的静态节点,Tables 和Views 在这些静态节点下列出。我如何做到这一点?
<TreeView Name="tvServer">
<TreeView.Resources>
<!-- Server -->
<HierarchicalDataTemplate DataType="{x:Type ostsql:Server}" ItemsSource="{Binding Databases}">
<StackPanel Orientation="Horizontal">
<Image Width="16" Height="16" Margin="3,0" Source="/Ost.Applications.CodeGenerator.Application;component/Images/SqlServer.png" />
<TextBlock Text="{Binding ConnectionString}" />
</StackPanel>
</HierarchicalDataTemplate>
<!-- Database -->
<HierarchicalDataTemplate DataType="{x:Type ostsql:Database}" ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal">
<Image Width="16" Height="16" Margin="3,0" Source="/Ost.Applications.CodeGenerator.Application;component/Images/Database.png" />
<TextBlock Text="{Binding Name}" />
</StackPanel>
</HierarchicalDataTemplate>
<!-- Table -->
<DataTemplate DataType="{x:Type ostsql:Table}">
<StackPanel Orientation="Horizontal">
<Image Width="16" Height="16" Margin="3,0" Source="/Ost.Applications.CodeGenerator.Application;component/Images/Table.png" />
<TextBlock Text="{Binding QualifiedName}" />
</StackPanel>
</DataTemplate>
<!-- View -->
<DataTemplate DataType="{x:Type ostsql:View}">
<StackPanel Orientation="Horizontal">
<Image Width="16" Height="16" Margin="3,0" Source="/Ost.Applications.CodeGenerator.Application;component/Images/View.png" />
<TextBlock Text="{Binding QualifiedName}" />
</StackPanel>
</DataTemplate>
</TreeView.Resources>
</TreeView>
【问题讨论】:
-
“静态节点”是什么意思?你的意思是你想让你的 TreeView 的根有 Server、Tables 和 Views 节点?
-
我希望我的数据库节点默认具有表和视图。表或视图节点将分别列出表和视图(如果有)。与 SQL Server 管理工作室的做法非常相似。
标签: wpf xaml binding treeview hierarchicaldatatemplate