【问题标题】:WPF Databinding and cascading Converters?WPF 数据绑定和级联转换器?
【发布时间】:2010-09-17 16:48:55
【问题描述】:

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

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

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

【问题讨论】:

    标签: wpf data-binding xaml binding converter


    【解决方案1】:

    您可能正在寻找类似于 Josh Smith 的“Piping Value Converters”的解决方案。

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

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

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

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

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      您可以尝试使用 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' 中放置逻辑来组合来自两个绑定的值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-30
        • 2011-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-24
        • 1970-01-01
        相关资源
        最近更新 更多