代码之家  ›  专栏  ›  技术社区  ›  LandonSchropp

将树视图选择绑定到ViewModel

  •  7
  • LandonSchropp  · 技术社区  · 16 年前

    所以我有一个类似这样的树视图:

    <TreeView   Name="elementTreeView"
                            ItemsSource="{Binding Elements}" 
                            Width="Auto"
                            SelectedValuePath="Path" />
    

    我还有一个TextBlock,定义如下:

    <TextBlock Text="{Binding ElementName=elementTreeView, Path=SelectedValue}" />
    

    我的ModelView非常基本,包含了您所期望的内容。我要寻找的是一种将ViewModel中的属性绑定到SelectedValue的方法。现在,文本块显示我需要的内容。有什么简单的方法可以绑定这个属性吗?

    3 回复  |  直到 16 年前
        1
  •  4
  •   LandonSchropp    16 年前

    public ElementViewModel Element {
        get {
            return this;
        }
    }
    

    然后我的TreeView声明看起来像这样:

    <TreeView   Name="treeView" 
                ItemsSource="{Binding Elements}" 
                Width="Auto"
                SelectedValuePath="Element" />
    

    之后,我所要做的就是绑定到另一个视图中的元素。

        2
  •  0
  •   hemp    16 年前
        3
  •  -2
  •   Reed Copsey    16 年前

    可以将树视图直接绑定到ViewModel上的属性:

    这将绑定到VM中的“SelectedItem”属性。

    <TreeView   Name="elementTreeView"
                        ItemsSource="{Binding Elements}" 
                        SelectedValue="{Binding SelectedItem, Mode=OneWayToSource}"
                        Width="Auto"
                        SelectedValuePath="Path" />