是否可以将MultiBinding的targetType传递给子绑定的转换器?

问题描述 投票:-2回答:1

我们有一个奇怪的例子,用作Binding的孩子的MultiBinding需要它的Converters Convert方法来知道MultiBinding所绑定的最终数据类型。

对于带有Binding的常规Converter,如果它与TextTextBlock属性绑定,Convert方法将在其System.string论证中接收targetType

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

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

c# wpf binding multibinding
1个回答
0
投票

好的,所以......简短的回答是“不,你不能!”然而,长期的答案是'是的,你可以,有点工作!'

诀窍是让孩子Binding处理转换器,而不是手动从MultiBinding自己的转换器中调用它。

我在下面的答案中实际上已经在StackOverflow.com上写了一篇很长的解释:

How to create a DynamicResourceBinding

具体来说,看看ProvideValueWrapperConvert函数。大量的评论解释了发生了什么以及为什么。

© www.soinside.com 2019 - 2024. All rights reserved.