我有一个TreeView
,带有一个TreeViewItems
模板的自定义资源字典。
我需要能够根据每个TreeViewItem
的绑定值以编程方式更改模板。
据我所知,我无法从ResourceDictionary
xaml访问绑定。
我认为我需要使用自己的userControl扩展TreeView
,但是我不确定为实现我想要的内容需要实际添加什么内容。
谢谢。
<TreeView Name="dirTree" AlternationCount="2" Background="#FAFAFA"
ScrollViewer.VerticalScrollBarVisibility ="Visible"
VerticalAlignment="Stretch"
ItemsSource="{Binding}"
VirtualizingStackPanel.IsVirtualizing="False"
VirtualizingStackPanel.VirtualizationMode="Standard"
ItemTemplateSelector="{StaticResource tuningDataTemplateSelector}">
<TreeView.Resources>
<ResourceDictionary Source="UI/Styles/TunerTreeViewStyle.xaml" />
</TreeView.Resources>
</TreeView>
这是树状视图,您可以看到我设置了ItemTemplateSelector,但这只会更改内容。我需要为TreeViewItem控件模板本身添加选择器。因此,我需要将其添加到TunerTreeViewStyle.xaml,但我认为您不能从那里获取绑定数据。
答案 0 :(得分:1)
您不能使用ItemTemplateSelector
来更改ControlTemplate
的{{1}}。
如果要执行此操作,则可以尝试定义带有TreeViewItem
的{{1}},该ItemContainerStyle
会基于某些源属性(例如,设置DataTrigger
的{{1}}属性) :
Template