2009-12-15 72 views
64

我有一个WPF Window,并在某处有一个ListView我在那里绑定一个List<string>到。WPF绑定到自己

现在在我的ListView某处有TextBoxContent属性设置为{Binding}

但这是速记。我如何编写完整的绑定来绑定自身?

{Binding Path=Self}不起作用,{Binding Self}(其中后者是前者的捷径)不起作用。

+0

我想提及与此主题相关的帖子。上述答案完全正确,但有一点可以完成上述答案。这里是[链接](http://stackoverflow.com/questions/11995318/how-do-i-bind-to-relativesource-self)。 – AAAA 2013-06-23 05:53:14

回答

202

简短的回答{Binding}为“结合自身”(在RelativeSource.Self的意义上)的快捷方式。相反,{Binding}is equivalent to{Binding Path=.},它绑定到当前源。


为了详细阐述:A结合具有路径。您可以通过使用

<myUIControl myProperty="{Binding RelativeSource={RelativeSource Self}, Path=x}" /> 

这做“结合自身”,例如,然而,设置到控件本身,所以它会尝试访问UI控件的属性x(而比当前数据上下文的属性x)。从我如何理解你的问题,这不是你想要的;特别是它不是{Binding}所做的:{Binding}保持原样(通常是某个父元素的DataContext)并绑定到源本身(相当于Path=.)。

+1

非常感谢! – Snake 2009-12-15 11:26:34

+1

好的答案,如果可以的话,我会给你+2。 – 2009-12-15 14:45:11

+0

真是个好回答! – 2012-08-15 20:37:47