WPF数据绑定和级联转换器?
-
03-07-2019 - |
题
我想知道在使用wpf数据绑定时是否可以级联转换器。 例如
之类的东西<SomeControl Visibility="{Binding Path=SomeProperty, Converter={StaticResource firstConverter}, Converter={StaticResource secondConverter}}"/>
是否有可能或者我是否必须创建一个结合了转换器A和B的功能的自定义转换器?
解决方案
您可以尝试使用 MultiBinding ,并将两次绑定到同一个源,但在单个绑定上使用不同的转换。类似的东西:
<SomeControl>
<SomeControl.Visibility>
<MultiBinding Converter="{StaticResource combiningConverter}">
<Binding Path="SomeProperty" Converter="{StaticResource firstConverter}"/>
<Binding Path="SomeProperty" Converter="{StaticResource secondConverter}"/>
</MultiBinding>
</SomeControl.Visibility>
</SomeControl>
然后在' combinedConverter '中,您将逻辑组合起来来自两个绑定的值。
其他提示
您可能正在寻找类似于Josh Smith的解决方案“管道值转换器一>&QUOT;
在他的文章中,他提出了以下内容:
<local:ValueConverterGroup x:Key="statusDisplayNameGroup">
<local:IntegerStringToProcessingStateConverter />
<local:EnumToDisplayNameConverter />
</local:ValueConverterGroup>
然后按如下方式使用多值转换器:
<TextBlock Text="{Binding XPath=@Status,
Converter={StaticResource statusDisplayNameGroup}}" />
希望这有帮助!
不隶属于 StackOverflow