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