Ich versuche, ein benutzerdefiniertes Steuerelement zu erstellen - eine Schaltfläche - die abhängig vom Wert einer Eigenschaft im Datenkontext auf mehrere Stile angewendet wird.Bindung für WPF-Stile
Was ich dachte, ist etwas ähnliches mit:
<Button Style="{Binding Path=ButtonStyleProperty, Converter={StaticResource styleConverter}}" Text="{Binding Path=TextProp}" />
Und in Code ... ein IValueConverter implementieren, die unten etwas ähnlich den Code funktioniert in der ConvertTo
Methode:
switch(value as ValueEnums)
{
case ValueEnums.Enum1:
FindResource("Enum1ButtonStyle") as Style;
break;
... and so on.
}
Allerdings bin ich mir nicht sicher, wie ich das Style-Objekt herausziehen soll und auch wenn das überhaupt möglich ist ...
Was mache ich in t Er bedeutet, dass die Zeit das Ereignis DataContextChanged
behandelt und dann einen Handler an das PropertyChanged
-Ereignis des Objekts anfügt, das an die Schaltfläche gebunden ist - und dann die switch-Anweisung dort ausführen.
Es ist nicht ganz perfekt, aber bis ich eine bessere Lösung finden kann, scheint es, dass ich das verwenden muss.
Danke Steve - das tat genau das, was ich versuchte zu tun :) –
Keine Sorge. Wie bei allem in WPF, gibt es wahrscheinlich noch 10 Wege, aber dieser Weg scheint ziemlich sauber und "Designer freundlich" :) –
Danke! Ich habe versucht, etwas in diese Richtung für einen StringToStyle-Konverter herauszufinden und stieß auf das, was super funktionierte. – Rachel