Betrachten wir die Folge 2 XAML-Schnipsel (die Seite an Seite in der Datei) Vermeidung von Doppel:in WPF (nach DRY)
<Button
x:Name="BuyButton"
Margin="0,0,1,1"
IsEnabled="{Binding CanBuy}"
>
<StackPanel
DataContext="{Binding Product}">
<TextBlock
Foreground="Red"
Text="BUY" />
<TextBlock
Foreground="Red"
Text="{Binding BuyPrice}" />
</StackPanel>
</Button>
<Button
x:Name="SellButton"
Margin="0,0,1,1"
IsEnabled="{Binding CanSell}"
>
<StackPanel
DataContext="{Binding Product}">
<TextBlock
Foreground="Red"
Text="SELL" />
<TextBlock
Foreground="Red"
Text="{Binding SellPrice}" />
</StackPanel>
</Button>
Wie man nicht entfernen Vervielfältigung in WPF? Ich habe ca. 4 Anwendungen (2 hier gezeigt) dieser Art von Button, und sie sind 80% gleich, wenn nicht mehr. Ich könnte dies in ein Benutzersteuerelement extrahieren und ein paar DPs darauf setzen, und dann hätte ich eine Kontrolle, aber ich befürchte, dass ich anfangen werde, meine Codebasis mit Tonnen von Benutzersteuerelementen zu verschütten (ich habe viele "einmalige") "Situationen wie diese). Ich mag die DataTemplate-Lösung hier nicht, da ich immer noch zwei Vorlagen benötige, die Code hätten wiederholen müssen. Ohne eine Reihe von Vorlagen/Steuerelementen zu erstellen, gibt es eine Möglichkeit, diesen Code DRY folgen zu lassen?
Aus dem Stand kann ich schnell sagen, weil ich keine neue Datei mit Extrakt-Methode erstellen muss. Aber ja, ich verstehe Ihre Argumentation, hatte einen ähnlichen internen Dialog. – DavidN