WPF:自定义TreeView [英] WPF : Custom TreeView

查看:155
本文介绍了WPF:自定义TreeView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


在我的项目中,我有一个自定义树状视图,其中包含一个数据模板,该数据模板定义在我的XAML文件.对于每个节点,我都会显示一张图片在我的DataTemplete/StackPanel中静态定义路径的地方,这完美地工作了.但是我希望能够从后面的代码中动态更改Root节点的图像.
我不知道该怎么做,甚至不知道该怎么做.因为就像我需要从后面的代码中定义另一个触发器一样!
这是我的代码:

< DataTemplate x:Key =" ; CategoryTemplate"DataType ="{x:Type shop:ShopCategory}">

< StackPanel x:Name =" ; GroupPanel"取向=水平".保证金="0,2,0,2">

<图片x:Name =" ;文件夹来源="C:\ image \ clopng.png" />

< TextBlock x:Name =" ; CategoryName保证金="2,0,0,0&"; Text ="{Binding Path = CategoryName}" />

</StackPanel>

< DataTemplate.Triggers>

< DataTrigger Binding =" {绑定路径= IsExpanded,RelativeSource = {RelativeSource TemplatedParent}}"值=真"

< Setter Property ="Source" ; TargetName =文件夹"值="C:\ image \ FolderOpeen.png" />

</DataTrigger>

< DataTrigger Binding =" {绑定路径=已选择,RelativeSource = {RelativeSource TemplatedParent}}"值=真"

< Setter Property ="前景" ; TargetName ="CategoryName";值=白色". />

< Setter Property ="Source" ; TargetName =文件夹"值="C:\ image \ FolderSelected.png" />

< Setter Property =" BitmapEffect" ;>

< Setter.Value>

< OuterGlowBitmapEffect GlowColor ="黑色" ; />

</Setter.Value>

</Setter>

</DataTrigger>

</DataTemplate.Triggers>

</DataTemplate>



通过将以下代码添加到我的DataTemplate.Triggers部分,可以静态更改XAML文件中ROOTNode的图像:

< DataTrigger Binding =" {绑定路径= Header.CategoryName,RelativeSource = {RelativeSource TemplatedParent}}"值=音乐">

< Setter Property ="Source" ; TargetName =文件夹"值="C:\ image \ Music.png"; />

</DataTrigger>

可以在那里做同样的事情  ;从后面的代码?,修改路径"Value =" C:\ image \ Music.png"的值.动态地从后面的代码中动态地获取RootNode吗?

预先感谢您.

 

推荐答案

是的,您可以使用以下代码动态设置触发器:

Yes, You can set trigger dynamically using following code :

      TreeViewItem treeViewItem = trv.ItemContainerGenerator.ContainerFromIndex(0) as TreeViewItem;
      ContentPresenter myContentPresenter = FindVisualChild<ContentPresenter>(treeViewItem);
      DataTemplate dataTemplate = myContentPresenter.ContentTemplate;
      dataTemplate.Triggers.Add(..)


这篇关于WPF:自定义TreeView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆