繁体   English   中英

如何访问TreeViewItem对象的数据

[英]How To Access Data of an TreeViewItem Object

我建立了一个MVVM模式TreeView

-根
- 项目
-子项目

当单击任何TreeViewItem时,我想在单独的窗口中显示实际对象(模型)的详细信息。

但是我不确定如何访问对象的数据。

private void TreeView_OnSelectedItemChanged(object sender, RoutedEventArgs e)
{
    TreeViewItem tvi = e.OriginalSource as TreeViewItem;
    MessageBox.Show(tvi.ToString());
}

我不建议在MVVM样式的WPF应用程序中使用TreeView_OnSelectedItemChanged

定义对您的ModelView绑定绑定到IsSelected的财产TreeeViewItem你时便会随时了解选择的,一个第二可以选择从代码感兴趣的项目,以及。

我先前的回答是要解决超出要求的范围。

由于您希望通过显示TreeViewItem绑定对象的详细信息来对TreeView中的选择更改做出反应,因此可以使用Caliburn MicroAction机制。 您可以将TreeView的SelectedItemChanged事件连接到ViewModel中的方法。

例如,在您的视图中:

<TreeView 
    ItemsSource="{Binding YourDataObjects}"
    cal:Message.Attach="[Event SelectedItemChanged] = [Action OnSelectedItemChanged($this)]"/>

在ViewModel中,您将具有以下方法:

public void OnSelectedItemChanged(YourDataObject selectedItem)
{
    //Do something with the selected item here 
}

如果您在设置时遇到问题,请告诉我。

在ViewModel中,创建TreeViewItem类型的依赖项属性,然后在View中将TreeView的SelectedValuePath属性绑定到新的依赖项属性。

在MVVM模式中,与控件关联的数据应位于DataContext依赖项属性中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM