Domanda

Mi chiedo se è possibile collegare in cascata i convertitori quando si utilizza la banca dati wpf. per esempio. qualcosa come

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

è possibile o devo creare un convertitore personalizzato che combini le funzionalità dei convertitori A e B?

È stato utile?

Soluzione

Puoi provare a utilizzare un MultiBinding e associarlo due volte alla stessa fonte, ma con conversioni diverse sui singoli binding. Qualcosa del tipo:

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

Quindi in ' CombinandoConverter ' metti la logica per combinare i valori provenienti dai due binding.

Altri suggerimenti

Potresti cercare una soluzione simile a quella di Josh Smith " Convertitori di valori di tubazioni ".

Nel suo articolo, presenta quanto segue:

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

E quindi utilizza i convertitori multi-valore come segue:

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

Spero che questo aiuti!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top