是否可以将多重绑定的目标类型传递给子绑定的转换器?



我们有一个奇怪的情况,用作MultiBinding子级的Binding需要其ConverterConvert方法来知道MultiBinding绑定到的最终数据类型。

对于带有Converter的常规Binding,如果它绑定到TextBlockText属性,则Convert方法将在其targetType参数中接收System.string

但是,如果将相同的Binding添加为MultiBinding的子项,即使该MultiBinding分配给Text属性本身,所有子BindingConverterConvert方法都将接收System.object作为targetType参数,而不是System.string。这是有道理的,因为从技术上讲,他们现在的目标是MultiBinding,而不是Text属性。

不过,我想知道是否可以设置它,以便将信息传递给子Bindings.我想不,但我想如果有人知道,那就是SO社区。

好的,所以...简短的回答是"不,你不能!然而,长答案是"是的,你可以,只要做点工作!

诀窍不是让子绑定处理转换器,而是从多重绑定自己的转换器手动调用它。

实际上,我已经在以下答案中 StackOverflow.com 写了一篇很长的解释,说明所有这些是如何工作的:

如何创建动态资源绑定。

具体来说,请检查ProvideValueWrapperConvert函数。很多评论解释了正在发生的事情和原因。

相关内容

  • 没有找到相关文章

最新更新