为什么我的转换器在隐藏窗口中调用?

时间:2014-04-14 19:09:18

标签: wpf imultivalueconverter

我有一个带有子窗口的Grid。其中一些孩子的MultiBinding有一个复杂的转换器。现在,如果我隐藏网格(CollapsedHidden),仍会调用转换器。为什么呢?!

当我隐藏UI元素时,我希望渲染器完全跳过其可视树。更具体地说,我希望我们的转换器在被隐藏的"操作时不被调用。背景!想法?

1 个答案:

答案 0 :(得分:1)

即使元素的Visibility属性为CollapsedHidden,它仍然是逻辑树的一部分,因此转换器继续工作是完全正常的,而元素不是可见。

在元素为Collapsed或Hidden时禁用值转换的一个简单解决方案是使用ConverterParameter Property,将其绑定到元素的Visibility属性,并在转换器中检查此属性是否设置为Collapsed或Hidden并跳过转换,如果是......

可能有一个更优雅的解决方案但如果没有人想到更好的方法而不是完全从逻辑树中删除元素,这应该可以解决问题...