我有一个包含通过数据绑定创建的项目的列表框。项目模板为每个生成的项目创建自定义视图。每个生成的项目视图都是自己的用户控件。
我想将列表框的状态更改为“详细信息”与“紧凑”之类的内容,并让每个项目都自动更改自己的状态。视图项根据其状态知道要显示或隐藏的内容。我似乎无法从更高级别(用于更改视图模式的按钮)更改生成的用户控件的状态。
我希望这很清楚。如果它有帮助,我会添加细节。
非常感谢您的帮助!
答案 0 :(得分:1)
在生成的控件中设置数据触发器,该控件绑定到父级的相对属性。有关使用RelativeSource的更多信息here - 您正在寻找祖先选项,它将是您提到的父列表框。
让我们假设你在列表框中公开一个ViewType属性,然后是
{Binding Path=ViewType, RelativeSource={RelativeSource AncestorType={x:Type ListBox}}}
应该有用。
答案 1 :(得分:0)
您可以设置
MyValue = "{Binding Path=SelectedItem.CustomProperty, Converter=CustomPropertyConverter}"
这将沿着您选择的项目沿着对象链向下走。
FindAncestor爬上了链条。