2016-04-27 12 views
0

Ich programmiere eine Reihe von WPF-Benutzersteuerelementen (nicht CommonControls!) Mit einer Schnittstelle für die allgemeinen Eigenschaften wie die Ausrichtungen oder den Inhalt (je nach Steuerelement; TextBox gibt den Text zurück und beschriftet den Inhalt pro Beispiel). Jetzt bekomme ich Kontrollen wie die Checkbox, die die nicht so häufige Eigenschaft IsChecked haben. Muss ich diese Eigenschaft von der Schnittstelle implementieren oder darf sie in der Benutzersteuerung selbst programmiert werden?Muss ich alle Benutzersteuerungseigenschaften per Schnittstelle in WPF implementieren?

+0

Fragen Sie eine WPF-Frage (einfache Antwort: WPF kümmert sich nicht um Ihre Schnittstelle), oder eine Klassenhierarchie Design-Frage? Wenn es Letzteres ist, wird es auf den Rest Ihres Designs abhängen. Welchen Zweck erfüllt die Schnittstelle? Kann es diesem Zweck ohne eine 'IsChecked'-Eigenschaft dienen? Kommt auf den Zweck an. –

Antwort

0

Okay, ich muss raten, es war eine dumme Frage. Aber nach acht Stunden weißt du nicht mehr, ob du Hillary oder Donald bist.

Die Antwort ist: Ein Interface kann von einem anderen erben und alle Mitglieder von der "übergeordneten" Schnittstelle implementieren.

0

Ich hoffe, Sie sprechen über das Binden einer Eigenschaft an ein Ansichtsmodell oder das direkte Erwähnen des Eigenschaftswerts im XAML selbst.

Es hängt tatsächlich von Ihrer Anforderung ab. Normalerweise binden wir einen Eigenschaftswert an ein Anzeigemodell oder einen hinterlegten Code, wenn diese Eigenschaft von bestimmten Bedingungen überprüft und dann festgelegt werden muss. Wenn Sie sich über den Wert der Eigenschaft sicher sind, können Sie sie in xaml selbst festlegen.

Zum Beispiel, wenn Sie die IsEnabled-Eigenschaft eines Textfelds festlegen möchten, und Sie sind sicher, dass das Textfeld immer editierbar ist. Setzen Sie es dann in XAML selbst als wahr. Wenn Sie jedoch das Textfeld während der Behandlung eines Ereignisses aktivieren müssen, binden Sie es an eine Eigenschaft im Ansichtsmodell und setzen Sie es während des Ereignisauslösers auf Wahr.

Verwandte Themen