WPF绑定到自身


86

我有一个WPF Window,在某个地方有一个ListView我绑定List<string>到的地方。

现在在我的某处ListView有一个,TextBox并且该Content属性设置为{Binding}

但这是简写。如何编写完整绑定以绑定到自身?

{Binding Path=Self}不起作用,也不起作用{Binding Self}(后者是前者的快捷方式)。


我想提一个与此主题相关的帖子。以上答案完全正确,但有一点可以完善以上答案。这是链接
AAAA 2013年

Answers:


247

简短的回答{Binding}不是为“结合自身”(在意义上的快捷方式RelativeSource.Self)。而是{Binding} 等效于 {Binding Path=.},它绑定到当前源。


详细说明:绑定具有路径。您可以进行“绑定到自身”,例如,通过使用

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

但是,这会将设置为控件本身,因此它将尝试访问xUI控件的属性(而不是x当前数据上下文的属性)。根据我对您问题的理解,这不是您想要的。特别是,它不是做什么的{Binding}{Binding}将源保持原样(通常DataContext是某些父元素的),并绑定到源本身(等效于Path=.)。


我有一个DataGrid,如果用户通过InputBinding的KeyBinding访问其ContextMenu的MenuItem的Command之一CommandParameter="{Binding ElementName=MyDataGrid, Path=SelectedItems}",它将把SelectedItems传递给Bound ICommand。但是,null如果通过ContextMenu访问它,则传递。我已经尝试过CommandParameter=“ {Binding SelectedItems}” , “ {Binding ElementName = MyDataGrid,Path = SelectedItems}”`和"{Binding RelativeSource={RelativeSource Self}, Path=SelectedItems}"
汤姆(Tom)

@Tom:这很难在评论中回答。请创建一个新问题,并提供一个最小的可复制示例
海因兹
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.