首页 文章

在xaml中引用视图模型中的对象

提问于
浏览
0

我想从viewmodel中添加一个对象到树视图,但我不想使用树视图项 .

有没有办法做这样的事情?

<TreeView>
    <SomeTag Object="{Binding MyViewModel.MyObject}/>
</TreeView>

问题是我试图绑定到非同质数据结构

ClassA
   ClassB
       ClassC (Collection)
          ClassD
          ClassD
          ...

我不想要A类节点
为ClassB添加了一个带有静态 Headers 文本的TreeViewItem .
为ClassC添加了一个带有静态头文本的TreeViewItem,将ItemsSource绑定到ClassC,并将绑定的DisplayMemberPath设置为Name属性 .

绑定另一个控件ro TreeView.SelectedItem . 如果我单击ClassB或ClassC项,SelectedItem是一个TreeViewItem . 如果我单击一个ClassD项,SelectedItem就是我的对象 .

如果试图不断得到我的对象 .

2 回答

  • 0

    您可以使用Tag属性 .

    <TreeView Tag="{Binding MyObject}" >
    </TreeView>
    
  • 0

    您可以像这样绑定 TreeViewItem's 属性:

    <TreeView>
        <TreeView.Resources>
            <Style TargetType="TreeViewItem">
                <Setter Property="Tag" Value="{Binding RelativeSource={RelativeSource Ancestortype={x:Type TreeView}},Path=DataContext.anyobjectofViewmodel}"/>
            </Style>
        </TreeView.Resources>
    ............
    ............
    </TreeView>
    

相关问题