如何否认“泡沫”在 WPF TreeView 中选择?
我有一个具有某种结构的分层 TreeView 对象:
- 主要级别
- 第二级 1
- 第二级 3
- 第二级 2
问题是:当我选择第二级上的项目时,它会为主级项目触发“选定”事件。我怎么能否认呢?我尝试使用布尔标志和原始源属性的一些技巧,但我失败了。 e.Handled = true 也不给我结果。
感谢您的任何建议,并对我的英语不好表示歉意!
I have a hierarchical TreeView object with some structure:
- Main level
- second level 1
- second level 3
- second level 2
The problem is: when I select item on second level it fires "selected" event for Main level item. How can I denied it? I try use some tricks with boolean flag and original source property, but I failed it.
e.Handled = true also do not give me result.
Thanks for any advices and sorry for my bad English!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 AddHandler 添加的事件会忽略 e.Handled 标志,这可能是您的情况。您能否检查事件的 Source 是否等于 OriginalSource,如果是则退出处理程序?
Events, added using AddHandler, ignore e.Handled flag, which is likely your case. Can you check if event's Source is equal to OriginalSource and if so quit the handler?
问题出在我的代码中的一些奇怪的错误中。当我在应用程序中使用闪屏时,主级别的事件会触发。当我禁用闪屏时 - 它与
e.已处理=真;
诡计。
因此,我在项目选定的事件处理程序末尾调用第二个启动屏幕 0 毫秒,并且它有效。
谢谢大家。
The problem was in some strange bug in my code. When I use splashscreen in my app, event for main level fires. When I disable splashscreen - it works perfectly with
e.Handled = true;
trick.
So I call second splashscreen in the end of item selected evend handler for 0 ms, and it works.
Thanks all.