ビューモデルからデータを動的にバインドするwpfアプリケーションにツリービューがあります。
<TreeView Grid.Column="0"
Grid.Row="0"
ItemsSource="{Binding Main}"
HorizontalAlignment="Stretch"
Name="treeView1"
VerticalAlignment="Stretch"
Height="auto"
Width="auto"
SelectedItemChanged="treeView1_SelectedItemChanged"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Top"
Margin="0,0,5,5">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded"
Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected"
Value="{Binding IsSelected, Mode=TwoWay}" />
<Setter Property="FontWeight"
Value="Normal" />
<Style.Triggers>
<Trigger Property="IsSelected"
Value="True">
<Setter Property="FontWeight"
Value="Bold" />
</Trigger>
</Style.Triggers>
</Style>
</TreeView.ItemContainerStyle>
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:MViewModel}"
ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Mname}" />
</StackPanel>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type local:FViewModel}"
ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding FName}" />
</StackPanel>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type local:CViewModel}"
ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Com}" />
</StackPanel>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type local:LViewModel}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Lo}" />
</StackPanel>
</DataTemplate>
</TreeView.Resources>
</TreeView>
ツリービュー全体に、子が上記のツリービュー要素である「ファミリー」というヘッダーを追加する必要があります。どうすればツリービュー全体にヘッダーを追加できますか? そのヘッダーをクリックすると、すべての Mname などが表示されるようになります。この問題で私を助けてください。
編集:
利用した
<HierarchicalDataTemplate DataType="{x:Type TextBlock}" ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="Family" />
</StackPanel>
</HierarchicalDataTemplate>
私のTreeviewResourceで。しかし、それでもツリーの親を割り当てることはできません。
編集2:
<TreeView>
<TreeViewItem ItemsSource="{Binding Main}" Header="Family">
<TreeViewItemContainerStyle>
//..
</TreeViewItemContainerStyle>
<TreeView.Resources>
//..
</TreeView.Resources>
</TreeViewItem>
</TreeView>
その表示エラー。
しかし、私が以下のようにすると、
<TreeView>
<TreeViewItemContainerStyle>
//..
</TreeViewItemContainerStyle>
<TreeView.Resources>
//..
</TreeView.Resources>
<TreeViewItem ItemsSource="{Binding Main}" Header="Family"/>
</TreeView>
ルート項目が設定されました。ただし、子の最初のセットのみが表示されます。子要素の子が表示されていません。