【发布时间】:2010-11-29 08:30:49
【问题描述】:
主题行说明了一切!我有一个用户控件,可以成功地绑定到一个 Fullname 对象 - 即它可以正常工作。
我现在需要显示这些列表,同样,当控件位于 ItemsControl.Template 中的 DataTemplate 中时,这可以正常工作。
但是,该控件有一个属性 (InEditMode),它不是 Fullname 对象的属性,而是具有通过 ItemsSource 绑定 ItemsControl 的 FullnameList 属性的对象的属性。当控件不在列表中并且绑定到名为 ParentInEditMode 和 ParentFullname 的父兄弟属性时,此 InEditMode 属性可以正常工作。
问题是 - 当控件是 ItemsControl 时,需要什么样式的绑定表达式才能“获取”父对象的编辑模式属性?
或者,我应该重新设计 Fullname 对象以包含 EditMode 属性吗?
非常感谢!
更新:
项目(即绑定到 ItemsControl 的集合中的项目)没有这样的属性。代码很简单:
<ItemsControl ItemsSource="{Binding Path=FullnameList}">
...then...
<ItemsControl.ItemTemplate>
<DataTemplate>
<jasControls:NameView
NameValue="{Binding Path=.}"
InEditMode= ??????? />
整个父级(窗口的视图模型)具有属性:
-
全名列表
-
ParentInEditMode
-
全名(用于测试 NameView 的单个项目,它与任何列表控件之外的此 xaml 完美配合使用:
<jasControls:NameView NameValue="{Binding Path=Fullname}" InEditMode="{Binding Path=ParentInEditMode}"/>
我想将编辑模式应用于整个集合 - 将该标志作为 Fullname 的一部分似乎不正确!?
【问题讨论】:
标签: wpf data-binding user-controls binding itemscontrol