【问题标题】:Access nested information in style setter在样式设置器中访问嵌套信息
【发布时间】:2017-04-13 09:59:28
【问题描述】:

我无法访问样式设置器中给定的 xaml 中的嵌套信息:

<Style x:Key="MainMenuItemStyle" TargetType="{x:Type MenuItem}">
    <Setter Property="Header" Value="{Binding Path=Tab.tab.Header}"/>
</Style>

想法是menuItems是MainMenuViewModel的类型,里面包含了TabViewModel(Tab),里面有一个TabModel(tab),最后有Header值。 如果我只放 Tab,它可以说是 TabViewModel,但是当我放 Tab.tab 时,错误是:

System.Windows.Data 错误:40:BindingExpression 路径错误:在“对象”“TabViewModel”(HashCode=38010219)上找不到“tab”属性。绑定表达式:路径=Tab.tab; DataItem='MainMenuViewModel' (HashCode=58345486);目标元素是'MenuItem'(名称='');目标属性是“标题”(类型“对象”)

【问题讨论】:

  • 何时创建 TabViewModel 对象?
  • 请贴出TabViewModel类的定义。
  • 很简单:公共TabModel标签;公共 TabViewModel() { tab = new TabModel(); } 和一些内部函数

标签: wpf xaml nested styles setter


【解决方案1】:

tab 必须是公共属性,您才能绑定到它:

public TabModel tab { get; set; }

不能是一个字段:

public TabModel tab;

【讨论】:

猜你喜欢
  • 2023-04-04
  • 2017-03-18
  • 2015-02-22
  • 1970-01-01
  • 2010-10-14
  • 2019-02-27
  • 1970-01-01
  • 2020-05-01
  • 2023-03-21
相关资源
最近更新 更多