求教:WPF如何获取TreeView节点后的Button的值

问题描述:

想实现的效果是:点击TreeView节点后的Button显示出隐藏的ListView,然后再点击一次Button可以隐藏ListView
现在的情况是:
1、不能直接点击Button,只能先点击节点然后再点击Button才能显示出隐藏的ListView
2、不能实现Button点击两次的效果,我用的是ToggleButton,但是取不到前台ToggleButton的Name
前台代码:
图片说明

后台代码
图片说明

求各位大神多多指教~

1个回答

1没看懂你想表达啥?Button也可以的,比如可以设置Button的Tag值,Visible的时候点击显示ListView并把Tag置为Hide,Hide的时候点击隐藏ListView并把Tag置为Visible。
2 设置ToggleButton的名称的时候用x:Name

u012881935
小奶包他干奶奶 回复偷偷的挂掉: 搞定了,谢谢大神提点~
2 年多之前 回复
m294955408
偷偷的挂掉 回复小奶包他干奶奶: 其实我的意思你要实现这个功能没必要这么麻烦,你不是ListView的Visbility的值绑定了一个变量么。实际上你直接绑定界面元素ToggleButton的IsChecked的值不就行了么。不需要写业务代码,只需要定义一个Converter,将bool值转换成Visible或Collapse的就好了。
2 年多之前 回复
m294955408
偷偷的挂掉 回复小奶包他干奶奶: 该控件属于TreeView的Item模板的内容。所以取值要通过模板的FindName方法(试试TreeView1.ItemTemplate.FindName()有木有)
2 年多之前 回复
u012881935
小奶包他干奶奶 回复偷偷的挂掉: 不好意思,脑袋转不过弯了额,就是如何取到这个Button呢,后台代码图上红线的地方显示的错误是当前上下文不存在“AddManButton”
2 年多之前 回复
m294955408
偷偷的挂掉 回复小奶包他干奶奶: 哦,取不到值是因为你的控件实在Template中的,你不能直接这么取值。其实简单一点,你不是可以把Visible和ToggleButton的IsChecked的值绑定么。用 Converter转换一下值就可以。
2 年多之前 回复
u012881935
小奶包他干奶奶 设置ToggleButton的名称的时候用x:Name也还是取不到值
2 年多之前 回复
u012881935
小奶包他干奶奶 1、就是我想点击Button是直接显示ListView,但是我直接点击Button的话会报错,如果先点击TreeView节点再点击Button的话就不会报错,效果也能出来
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!