2008-10-17 16 views
11

me pregunto si es posible hacer una cascada de convertidores cuando se usa el enlace de datos wpf. p. algo así comoWPF Enlazado de datos y convertidores en cascada?

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

¿es posible o tengo que crear un convertidor personalizado que combine la funcionalidad del convertidor A y B?

Respuesta

7

Puede intentar utilizar MultiBinding, y vincular dos veces a la misma fuente, pero con diferentes conversiones en los enlaces individuales. Algo así como:

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

Luego, en 'combiningConverter' se pone la lógica para combinar los valores procedentes de los dos enlaces.

18

Quizás esté buscando una solución similar a Josh Smith's "Piping Value Converters".

En su artículo, que presenta lo siguiente:

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

y luego utiliza los convertidores de valores múltiples de la siguiente manera:

<TextBlock Text="{Binding [email protected], 
      Converter={StaticResource statusDisplayNameGroup}}" /> 

Espero que esto ayude!

Cuestiones relacionadas