最近我看到一些关于走视觉树是不良做法的评论(
here for instance),但我没有看到或找到了为什么这将是不好的做法的原因.
在一个项目中,我正在进行相当多的树木行走,所以我想知道我是否应该把所有这些改成别的东西,或者只是让它成为现实.
所以,我想我的主要问题是视觉树行走真的是不好的做法,更重要的是,如果是,为什么呢?
此外,在哪里(如果有的话)可以走视觉树吗?
最佳答案 >走一棵可视树往往相当于打破WPF“自然”机制提供的抽象,手动执行框架本身应该做的事情(通过XAML声明,数据绑定等).这是一个黑客,简单地说.有时它表明一个人不确定如何正确使用WPF. (顺便说一句,这很难使用).
>你无法真正知道视觉树是否完整; WPF可能尚未生成所有控件(例如,在填充包含许多项的列表时).为了解决这个问题,您需要实现安全措施,处理LayoutUpdated事件等,这会使您的代码过于复杂.