WPF Convertitori di database e cascading?
-
03-07-2019 - |
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?
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!