Zugang Datacontext in Code-behind
-
03-07-2019 - |
Frage
Hüten Sie sich vor, das ist eine ziemlich grundlegende Frage (glaube ich).
Ich habe eine Usercontrol, genannt MyUserControl. Ich benutze es in einem Datatemplate für meine List-Box:
<l:MyUserControl DataContext="Test" />
Jetzt möchte ich dieses Datacontext für den Zugriff auf den Code-behind von MyUserControl, und ich erwarte, dass Datacontext ein String-Objekt mit dem Inhalt „Test“ enthalten. Allerdings ist Datacontext null. Was ich hier fehlt?
Lösung
Wenn Sie die Datacontext-Eigenschaft im Code hinter zugreifen möchten, geben dem Benutzer die Kontrolle (oder alle Steuerelemente für diese Angelegenheit) ein Name:
im Code hinter:
myControl.DataContext = someobject;
Obwohl in Ihrem Beispiel die Datacontext auf „Test“ wird nichts erreichen.
Lesen Sie auf Daten verbindliche in WPF http://msdn.microsoft.com/en-us/library/aa480224. aspx
Andere Tipps
Sie müssen einige Felder oder propertie in MyUserControl der Klasse mit dem Namen Datacontext.
Siehe hier über Benutzer lernen Steuereigenschaften in .net.