Ich habe Schwierigkeiten bei der Verwendung eines Wertkonverters mit einem Daten-Trigger. In einigen meiner Codes scheint es, als würde der DataTrigger
Path
auf das Wurzelelement angewendet, anstatt auf das Element, auf das der Stil angewendet wird.
Ich habe einen einfachen Testfall erstellt und verstehe sein Verhalten nicht. Ich erwarte, dass die Schaltfläche
je nachdem, welcher Wert dem Konverter des DataTrigger
zugeführt wird, rot oder blau wird, aber die Schaltfläche
wird überhaupt nicht beeinflusst!
<Style.Triggers>
<DataTrigger
Binding="{Binding Path=ToolTip, Converter={StaticResource SimpleConverter}}"
Value="Button ToolTip">
<Setter Property="Background" Value="Red" />
</DataTrigger>
<DataTrigger
Binding="{Binding Path=ToolTip, Converter={StaticResource SimpleConverter}}"
Value="Benutzersteuerung ToolTip">
<Setter Property="Background" Value="Blau" />
</DataTrigger>
</Style.Triggers>
Und ein einfacher Konverter:
Klasse SimpleConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return Wert;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new InvalidOperationException("SimpleConverter ist ein OneWay-Konverter.");
}
}
Warum wird Convert
nicht aufgerufen? Warum wird die Schaltfläche
nicht rot oder blau?