什么可以绑定到不存在的属性(仅限树视图项?



在我的xaml中,我有如下所示的内容:

<TreeView.ItemContainerStyle>
    <Style TargetType="TreeViewItem">
        <Setter Property="IsExpanded" Value="{Binding Path=IsExpandedOverridedInModelView, Mode=TwoWay}"/>
    </Style>
</TreeView.ItemContainerStyle>

此代码完美运行。

我的

树视图绑定到包装我的数据层层次结构的模型视图层次结构 (MVVM)。另一个层次结构上的层次结构包装器。我的边界模型视图层次结构添加了一些属性,如(IsSelected和IsExpandedOverridedInModelView)。此代码主要定义了 TreeView.IsExpanded 属性和我的 ModelView 层次结构属性之间的绑定:"IsExpandedOverridedInModelView"。

但是有些事情我一直无法弄清楚...

每个人都知道 TreeViewItem 类没有名为"IsExpandedOverridedInModelView"的属性。此属性是我的基础对象(TreeViewItem 后面的模型视图中的对象)的一部分。我有两个相关问题:

  • 是什么使这一宣言成为可能?是什么扭曲使这种行为?
  • 如何声明以删除 ~"警告"说"无法解析符号'IsExpandedOverridedInModelView'"(如何以干净的方式声明)?

我以为TreeViewItem会派生自DynamicObject,但事实并非如此。

TreeViewItem具有IsExpanded属性。任何告诉您其他情况的警告都是一些 IDE 废话的结果。绑定是指可能具有也可能没有此类属性的DataContext,除非您使用设计器,否则仅在运行时进行评估(同样,来自该属性的警告只是 IDE 废话)。

相关内容

  • 没有找到相关文章

最新更新