使用模板和样式的可编辑树视图节点
Posted
技术标签:
【中文标题】使用模板和样式的可编辑树视图节点【英文标题】:Editable treeview node using templates and styles 【发布时间】:2012-03-23 17:56:21 【问题描述】:我正在尝试在 WPF 中创建一个可编辑的树视图节点。我读了this article。但他遗漏了最关键的部分作为“作业”,并以现在缺失的图片的形式给出了暗示。它使他的整个博客文章对我毫无用处。否则我认为它非常好。
我有以下树视图模板,我省略了属性。
<HierarchicalDataTemplate>
<StackPanel>
<Image/>
<TextBlock/>
</StackPanel>
</HierarchicalDataTemplate>
创建一个新的数据模板
<DataTemplate x:Key="editableName">
<TextBox/>
</DataTemplate>
使用以下触发器在选择TreeView中的节点时更改模板。
<Style TargetType="x:Type TreeViewItem">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="SOMEPATH!!!" Value="StaticResource editableName" />
</Trigger>
</Style.Triggers>
</Style>
我需要在 HierarchicalDataTemplate/StackPanel/TextBlock.HeaderTemplate 中插入数据模板的路径是什么?来自 TreeViewItem 中的此触发器。
或者我是不是走错了路?
非常感谢您的帮助
【问题讨论】:
【参考方案1】:应该是ItemTemplate
。
这是修改TreeViewItem
正文的属性。要修改标头,请使用HeaderTemplate
。
【讨论】:
【参考方案2】: <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>
【讨论】:
谢谢,我设法用一种稍微不同的方式自己解决了这个问题,使用 DataTrigger 和 ContentControl。但我想我可能更喜欢你的:)以上是关于使用模板和样式的可编辑树视图节点的主要内容,如果未能解决你的问题,请参考以下文章