[英]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 Micro的Action
机制。 您可以将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.