我有一个 WPF Window
,在某个地方有一个ListView
我绑定List<string>
到的地方。
现在在我的某个地方ListView
有 aTextBox
并且Content
属性设置为{Binding}
.
但这是简写。如何编写完整的绑定以绑定到自身?
{Binding Path=Self}
不起作用,也不起作用{Binding Self}
(后者是前者的捷径)。
我有一个 WPF Window
,在某个地方有一个ListView
我绑定List<string>
到的地方。
现在在我的某个地方ListView
有 aTextBox
并且Content
属性设置为{Binding}
.
但这是简写。如何编写完整的绑定以绑定到自身?
{Binding Path=Self}
不起作用,也不起作用{Binding Self}
(后者是前者的捷径)。
简短的回答:{Binding}
不是“绑定到自身”的捷径(在RelativeSource.Self的意义上)。相反,{Binding}
等效于 {Binding Path=.}
,它绑定到当前源。
详细说明:绑定具有源和路径。您可以执行“绑定到自身”,例如,通过使用
<myUIControl myProperty="{Binding RelativeSource={RelativeSource Self}, Path=x}" />
但是,这会将源设置为控件本身,因此它将尝试访问x
UI 控件的属性(而不是x
当前数据上下文的属性)。根据我对您问题的理解,这不是您想要的;特别是,它不是做什么{Binding}
:{Binding}
保持源原样(通常DataContext
是某些父元素的)并绑定到源本身(相当于Path=.
)。