WPF 数据绑定和级联转换器?

发布于 2024-07-07 15:08:45 字数 264 浏览 8 评论 0原文

我想知道使用 wpf 数据绑定时是否可以级联转换器。 例如,

<SomeControl Visibility="{Binding Path=SomeProperty, Converter={StaticResource firstConverter}, Converter={StaticResource secondConverter}}"/>

是否有可能,或者我是否必须创建一个结合了转换器 A 和 B 功能的自定义转换器?

i wonder if it is possible to cascade converters when using wpf databinding.
e.g. something like

<SomeControl Visibility="{Binding Path=SomeProperty, Converter={StaticResource firstConverter}, Converter={StaticResource secondConverter}}"/>

is it possible at all or do i have to create a custom converter that combines the functionality of converter A and B?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

温柔嚣张 2024-07-14 15:08:45

您可能正在寻找类似于 Josh Smith 的“管道值转换器”的解决方案。

在他的文章中,他提出了以下内容:

<local:ValueConverterGroup x:Key="statusDisplayNameGroup">
  <local:IntegerStringToProcessingStateConverter  />
  <local:EnumToDisplayNameConverter />
</local:ValueConverterGroup> 

然后按如下方式使用多值转换器:

<TextBlock Text="{Binding XPath=@Status, 
             Converter={StaticResource statusDisplayNameGroup}}" />

希望这有帮助!

You may be looking for a solution similar to Josh Smith's "Piping Value Converters".

In his article, he presents the following:

<local:ValueConverterGroup x:Key="statusDisplayNameGroup">
  <local:IntegerStringToProcessingStateConverter  />
  <local:EnumToDisplayNameConverter />
</local:ValueConverterGroup> 

And then uses the multi-value converters as follows:

<TextBlock Text="{Binding XPath=@Status, 
             Converter={StaticResource statusDisplayNameGroup}}" />

Hope this helps!

永不分离 2024-07-14 15:08:45

您可以尝试使用MultiBinding,并将两次绑定到同一源,但在单个绑定上使用不同的转换。 类似于:

<SomeControl>
    <SomeControl.Visibility>
        <MultiBinding Converter="{StaticResource combiningConverter}">
            <Binding Path="SomeProperty" Converter="{StaticResource firstConverter}"/>
            <Binding Path="SomeProperty" Converter="{StaticResource secondConverter}"/>
        </MultiBinding>
    </SomeControl.Visibility>
</SomeControl>

然后在“combiningConverter”中放置逻辑来组合来自两个绑定的值。

You could try to use a MultiBinding, and bind twice to the same source, but with different converts on the single bindings. Something like:

<SomeControl>
    <SomeControl.Visibility>
        <MultiBinding Converter="{StaticResource combiningConverter}">
            <Binding Path="SomeProperty" Converter="{StaticResource firstConverter}"/>
            <Binding Path="SomeProperty" Converter="{StaticResource secondConverter}"/>
        </MultiBinding>
    </SomeControl.Visibility>
</SomeControl>

Then in 'combiningConverter' you put the logic to combine the values coming from the two bindings.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文