2012-02-18 82 views
1

我正在构建一个WPF应用程序,并且在我的窗口的代码隐藏(实际上是一大堆)中有一些DependencyProperties。我想将文本框绑定到这些字符串值之一。如果我使用{Binding ObjectName}它只是不起作用,它抱怨没有在输出中找到属性。如果我使用{Binding ObjectName, ElementName=window}(其中window是我的Window实例名称),它可以工作。但是我有很多绑定,我不想每次都使用ElementName属性。是否有任何将所有元素名称默认为窗口对象的快捷方式,因为所有的绑定都具有相同的元素?如何摆脱在XAML WPF绑定中使用ElementName

谢谢, 可以。

回答

1

绑定的默认来源为FrameworkElement.DataContext,因此您必须将窗口的DataContext属性设置为您窗口的实例,例如DataContext = this;

+0

我试图将窗口的DataContext设置为DataContext =“{RelativeSource Self}”,但它不起作用。当我试图删除ElementName时,它会回到默认值,打破绑定。 – 2012-02-18 18:00:25

+0

哦,我的坏。我将它更改为'DataContext =“{Binding RelativeSource = {RelativeSource Self}}”'现在它可以工作。谢谢。 – 2012-02-18 18:05:00