Blog
XAML ConverterParameter - mit Binding
Neulich habe ich probiert einem Converter einen ConverterParameter per Binding einen Wert zuzuweisen. Ich habe dabei immer eine Exeption erhalten welche wie folgt lautete:
"Binding" kann nicht für die Eigenschaft "ConverterParameter" vom Typ "Binding" festgelegt werden. "Binding" kann nur für eine "DependencyProperty" eines "DependencyObject" festgelegt werden.
Worauf ich schließe, dass man dem ConverterParameter nur statische Werte zuweisen kann. Da ich aber dringend den zweiten Paramter brauche, welcher sich zur Laufzeit ändert musste ich eine andere Lösung für mein Problem finden.
Glücklicherweise gibt zu den IValueConverter auch sowas wie IMultiValueConverter.
Über XAML kann man die Werte so übergeben:
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{x:Static converters:Converters.OwnerToStringConverter}">
<Binding Path="."/>
<Binding RelativeSource="{RelativeSource self}" Path="(local:Facade.RootParentFacade).SelectedArtikel"></Binding>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{x:Static converters:Converters.OwnerToStringConverter}">
<Binding Path="."/>
<Binding RelativeSource="{RelativeSource self}" Path="(local:Facade.RootParentFacade).SelectedArtikel"></Binding>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
Das <Binding Path="."/> entspricht <TextBlock Text="{Binding}">. Alle Binding Parameter sind in der Converter Klasse bzw. Funktion im Paramenter values enthalten.
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
{
Verwandte Themen: Einfacher Zugriff auf Converter in XAML
Schlüsselwörter: C#, WPF, XAML
zuletzt geändert: 28. März 2009 20:08
Link zu diesem Artikel: (in die Zwischenablage)
(c) 2011 | Impressum |
| Empfehlenswerte Blog Einträgebaska.jpg)