Wie an eine WPF-Abhängigkeitseigenschaft binden, wenn der Datenkontext der Seite für andere Bindungen verwendet wird? (Einfache Frage)Wie binden Sie an eine WPF-Abhängigkeitseigenschaft, wenn der Datenkontext der Seite für andere Bindungen verwendet wird?
Antwort
Der Datenkontext des Elements muss festgelegt werden.
XAML:
<Window x:Class="WpfDependencyPropertyTest.Window1" x:Name="mywindow">
<StackPanel>
<Label Content="{Binding Path=Test, ElementName=mywindow}" />
</StackPanel>
</Window>
C#:
public static readonly DependencyProperty TestProperty =
DependencyProperty.Register("Test",
typeof(string),
typeof(Window1),
new FrameworkPropertyMetadata("Test"));
public string Test
{
get { return (string)this.GetValue(Window1.TestProperty); }
set { this.SetValue(Window1.TestProperty, value); }
}
Auch diese Frage im Zusammenhang sehen:
+1 Danke. Endlich ein leicht zu verstehendes, klares Beispiel! –
Gibt es automatisch eine Änderungsbenachrichtigung, wenn "Test" durch Code geändert wird? – Kos
Sie sind mein Retter, Thomas Bratt – user1836155
In XAML:
Something="{Binding SomethingElse, ElementName=SomeElement}"
In Code:
BindingOperations.SetBinding(obj, SomeClass.SomethingProperty, new Binding {
Path = new PropertyPath(SomeElementType.SomethingElseProperty), /* the UI property */
Source = SomeElement /* the UI object */
});
Obwohl in der Regel tun Sie das andersrum und binden die UI-Eigenschaft auf die benutzerdefinierte Abhängigkeitseigenschaft.
Sie für etwas anderes fragen, als das, was Sie finden, wenn Sie die Google-Suche für "WPF Databinding"? –
Ich suchte nach einem Arbeitsbeispiel, wo der Datacontext der Seite bereits für die anderen Bindungen verwendet wird. Wie sich herausstellte, musste der Datenkontext des Elements auf die Seite selbst gesetzt werden. Ich poste Code und bearbeite die Frage, falls erforderlich. –