get the solution

Blog

Martin Martin
28.03.2009 15:52

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>

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äge