C# WPF :从一个Treeview控件中往一个列表添加子节点,当列表中已经存在该子节点时,(见问题补充)

当列表中已经存在该子节点时,在Treeview列表中该子节点要显示为灰色,表示不能对其进行操作,该怎么做?请各位大侠指教,谢谢!!!... 当列表中已经存在该子节点时,在Treeview列表中该子节点要显示为灰色,表示不能对其进行操作,该怎么做?请各位大侠指教,谢谢!!! 展开
 我来答
百度网友0f8ac26
2011-08-12 · TA获得超过227个赞
知道小有建树答主
回答量:302
采纳率:0%
帮助的人:200万
展开全部
采用mvvm设计模式:两个treeview的Itemssource应该绑定各自的如ObservableCollcetion<DataClass>这样的集合。可以在DataClass中新增一个用于表示是否变灰的bool属性。在样式中使用触发器,当bool值为true,就变灰。然后当有个Treeview里面的Item添加到目的地列表中的时候,将该Item种的DataClass的是否变灰属性设置为true即可实现你要的功能。
记得DataClass实现接口INotifyPropertyChanged

其他人的回答你完全可以忽略了。因为其他人的回答把wpf程序硬是做成了winform。如果你用别人的方法,你的程序和winform做的,asp.net做的没啥区别了。也没有利用到wpf的特点。
所失佛
2015-12-23 · 超过24用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:75.1万
展开全部
UI层与逻辑层要尽可能地剥离(解耦)。
Routed Event和Command比Event的耦合度要低。
UI层与逻辑层的“血管”是数据关联(Data Binding)。
尽量不要试图通过UI层去拿数据或者操作数据,而是直接去操作数据源。例如:
想对一个TreeView里的结点排序,不应该是对TreeViewItem排序,而是应该对TreeView的DataSource排序
TreeView的Item是CheckBox,想把这些CheckBox认为选中,不应该从UI下手,而是把与CheckBox相关联的数据设为true
想得到ListView(内嵌GridView)中的数据,不要使用VisualTree去找来找去,而是应该去访问ListView的DataSource
数据关联的核心思想是:数据决定UI。UI的作用是Update数据。比起Windows Form,WPF的UI作用淡化了很多。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
傲傲老爹
2011-08-10 · TA获得超过372个赞
知道小有建树答主
回答量:547
采纳率:0%
帮助的人:235万
展开全部
你的意思是换图标不知道怎么换,还是怎么设置该节点不能操作啊?
设置图标就是把节点的图标进行再次的设置。因为一般都是有默认的。
至于设置节点不能操作,你可以在节点的操作逻辑里面判断,如果不能操作,直接退出或者给个提示就行了。
追问
要怎么判断在目标列表中已经有存在Treeview中的某一节点,并把Treeview中的该节点弄成灰色的?因为我的点比较多,添加的时候要避免重复,弄成灰色的点不能添加,其他的点还是可以正常添加,不要直接退出和提示。
追答
你要先把这个treeview的图标指向一个imagelist,然后你在向里面加节点的时候,根据节点的需要,设置其图标索引就可以将节点的图标设置为不同的。
至于有的不能添加,那还是要在后面的逻辑里面控制。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式