WPF-Benutzersteuerelement: DependencyProperty wird nie festgelegt (nur für eine von vielen Eigenschaften)

8

Ich habe ein benutzerdefiniertes Steuerelement namens AddressForm erstellt, das von Control erbt. Das Steuerelement wird verwendet, um die Felder für ein IAddress-Objekt anzuzeigen.

Ursprünglich habe ich dieses Steuerelement in Silverlight erstellt, jetzt versuche ich, es in WPF .net 4.5

arbeiten zu lassen

Das Steuerelement definiert 9 verschiedene Abhängigkeitseigenschaften und alle außer einem funktionieren ordnungsgemäß. Natürlich funktioniert das Adressobjekt selbst nicht!

Die Address-Eigenschaft des Steuerelements erhält niemals einen Wert. Ich gebe einen Break-Point in den Getter der Adresse ein, die Eigenschaft wird aufgerufen, das Adressobjekt ist nicht null, aber das Steuerelement empfängt nicht es.

Es gibt keine Ausnahmen oder Fehlermeldungen im Ausgabebildschirm.

Steuerung:

%Vor%

(Andere DependencyProperties werden auf dieselbe Weise festgelegt und funktionieren ordnungsgemäß.)

xaml:

%Vor%

Der Typ von SelectedMFG ist scm_MFG

Datenobjekte:

%Vor%

Meine Versuche:

Ich habe versucht, auf die dms_Address-Eigenschaft auf verschiedene Arten zuzugreifen. Ich kann die Werte der Adresse in einem Textfeld anzeigen, das sagt mir, dass es kein Problem mit dem Datenkontext gibt.

%Vor%

Ich habe auch versucht, die Registrierungs-Metadaten der Abhängigkeitseigenschaft zu ändern. Ich bin mir nicht sicher, welches der richtige ist: PropertyMetadata, UIPropertyMetadata oder FrameworkPropertyMetadata

%Vor%

.

Ich glaube Ich habe alles richtig gemacht und das sollte funktionieren.

Fällt irgendetwas als seltsam oder falsch aus?

    
Shaboboo 17.07.2015, 18:40
quelle

1 Antwort

2

Ich habe eine Lösung gefunden.

Ich habe die Adressabhängigkeitseigenschaft für das Formular von IAddress in Objekt geändert. Jetzt wird die Eigenschaft festgelegt. Es scheint, dass, obwohl ich ein IAddress -Objekt zurückgegeben habe, das Objekt, das das Formular tatsächlich empfängt, ein EntityWrapper für dms_Address ist.

Dieser Entity-Wrapper wird auch nach IAddress umgewandelt. Daher weiß ich nicht, warum er sich so verhält. Nur eine andere Entität, glaube ich.

    
Shaboboo 22.07.2015, 13:23
quelle