将TreeView选择绑定到ViewModel

Lan*_*opp 7 wpf binding

所以我有一个看起来像这样的TreeView:

<TreeView   Name="elementTreeView"
                        ItemsSource="{Binding Elements}" 
                        Width="Auto"
                        SelectedValuePath="Path" />
Run Code Online (Sandbox Code Playgroud)

我还有一个TextBlock定义如下:

<TextBlock Text="{Binding ElementName=elementTreeView, Path=SelectedValue}" />
Run Code Online (Sandbox Code Playgroud)

我的ModelView非常基本,包含您期望的内容.我正在寻找的是一种将我的ViewModel中的属性绑定到SelectedValue的方法.现在,文本块显示我需要的内容.有没有简单的方法来绑定这个属性?

Lan*_*opp 4

事实证明,这是没有完全正确遵循 MVVM 模式的结果。解决方案是仅使用一个 ViewModel 对象。在 ViewModel (其类型为 ElementViewModel)对象内部,我有类似的内容:

public ElementViewModel Element {
    get {
        return this;
    }
}
Run Code Online (Sandbox Code Playgroud)

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

<TreeView   Name="treeView" 
            ItemsSource="{Binding Elements}" 
            Width="Auto"
            SelectedValuePath="Element" />
Run Code Online (Sandbox Code Playgroud)

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