나는 Databases
의 목록을 가진 Server
을가집니다. Database
의 목록은 Tables
이고 Views
입니다. 이라는 Database
이라는 도우미 속성은 Tables
과 Views
사이에 Union
으로 구성되어 있습니다.WPF TreeView HierarchicalDataTemplate 바인딩
아래는 위대한 저의 경우 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의 루트에 서버, 테이블 및 뷰 노드가 있기를 원하십니까? –
기본적으로 내 데이터베이스 노드에 테이블 및 뷰가 있어야합니다. 테이블 또는 뷰 노드에는 테이블 및 뷰가 각각 나열됩니다. SQL Server Mnagement 스튜디오에서 수행하는 것과 거의 비슷합니다. – c0D3l0g1c