Cod*_*key 4 wpf treeview templates styles
我正在尝试在WPF中创建一个可编辑的树视图节点.我读了这篇文章.但他将最重要的部分排除在"家庭作业"之外,并以现在缺失的图片的形式给出了暗示.它使整个博客文章对我无用.否则我认为它非常好.
我有以下树视图模板,我遗漏了属性.
<HierarchicalDataTemplate>
<StackPanel>
<Image/>
<TextBlock/>
</StackPanel>
</HierarchicalDataTemplate>
Run Code Online (Sandbox Code Playgroud)
创建一个新的DataTemplate
<DataTemplate x:Key="editableName">
<TextBox/>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
选择树视图中的节点时,使用以下触发器更改模板.
<Style TargetType="{x:Type TreeViewItem}">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="SOMEPATH!!!" Value="{StaticResource editableName}" />
</Trigger>
</Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)
我需要在HierarchicalDataTemplate/StackPanel/TextBlock.HeaderTemplate中插入数据模板的路径是什么?来自TreeViewItem中的此触发器.
或者我是以错误的方式来做这件事的?
非常感谢您的帮助
WPF*_*-it 13
<TreeView x:Name="MyTreeView">
<TreeView.Resources>
<DataTemplate x:Key="NormalTemplate">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding ID}" Margin="3"/>
<TextBlock Text="-" Margin="3"/>
<TextBlock Text="{Binding Name}" Margin="3"/>
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="EditTemplate">
<TextBox Text="{Binding Name}"/>
</DataTemplate>
</TreeView.Resources>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate
ItemsSource="{Binding Team}">
<ContentPresenter Content="{Binding}">
<ContentPresenter.Style>
<Style TargetType="{x:Type ContentPresenter}">
<Setter Property="ContentTemplate"
Value="{StaticResource
NormalTemplate}"/>
<Style.Triggers>
<DataTrigger
Binding="{Binding IsSelected,
RelativeSource={RelativeSource
FindAncestor,
AncestorType={x:Type TreeViewItem}}}"
Value="True">
<Setter Property="ContentTemplate"
Value="{StaticResource
EditTemplate}" />
</DataTrigger>
</Style.Triggers>
</Style>
</ContentPresenter.Style>
</ContentPresenter>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
Run Code Online (Sandbox Code Playgroud)