【发布时间】:2011-08-23 17:18:09
【问题描述】:
我一直在寻找这个问题的解决方案,但我仍然找不到合适的解决方案。请帮忙。基本上,我有一个绑定到对象列表的树视图。当用户单击 treeviewitem 时,我会根据 treeviewitem 为数据网格加载数据。用户可以更改网格中的数据。如果数据网格发生更改并且用户单击另一个树视图项,则会要求用户保存。用户可以选择是、否或取消。当用户选择取消时,应用程序必须让用户停留在当前的树视图项上,直到他/她保存数据网格。问题是一旦用户选择了另一个treeviewitem,我就无法再次选择之前的选择。没有“SelectedItemChanging”事件。 WPF 树视图只有 SelectedItemChanged 事件。我正在尝试多种解决方案,但我总是以无限结束。请提供任何提示或建议。
谢谢, 明赫
【问题讨论】:
-
对于这种事情,我通常在绑定到树视图的(视图模型)对象上包含一个 IsSelected 属性。如果在 TreeViewItem.IsSelected 属性和(视图模型)对象属性之间设置双向绑定,则可以通过编程方式选择树视图中的项目。如果保存数据网格的控件可以访问(视图模型)实例(或可以将命令传递给它),您可以在取消时以编程方式选择。
标签: wpf treeview wpf-controls treeviewitem selecteditemchanged