【问题标题】:WPF TreeView Cancel TreeViewItem SelectionWPF TreeView 取消 TreeViewItem 选择
【发布时间】:2011-08-23 17:18:09
【问题描述】:

我一直在寻找这个问题的解决方案,但我仍然找不到合适的解决方案。请帮忙。基本上,我有一个绑定到对象列表的树视图。当用户单击 treeviewitem 时,我会根据 treeviewitem 为数据网格加载数据。用户可以更改网格中的数据。如果数据网格发生更改并且用户单击另一个树视图项,则会要求用户保存。用户可以选择是、否或取消。当用户选择取消时,应用程序必须让用户停留在当前的树视图项上,直到他/她保存数据网格。问题是一旦用户选择了另一个treeviewitem,我就无法再次选择之前的选择。没有“SelectedItemChanging”事件。 WPF 树视图只有 SelectedItemChanged 事件。我正在尝试多种解决方案,但我总是以无限结束。请提供任何提示或建议。

谢谢, 明赫

【问题讨论】:

  • 对于这种事情,我通常在绑定到树视图的(视图模型)对象上包含一个 IsSelected 属性。如果在 TreeViewItem.IsSelected 属性和(视图模型)对象属性之间设置双向绑定,则可以通过编程方式选择树视图中的项目。如果保存数据网格的控件可以访问(视图模型)实例(或可以将命令传递给它),您可以在取消时以编程方式选择。

标签: wpf treeview wpf-controls treeviewitem selecteditemchanged


【解决方案1】:

您可以只使用一个私有字段来存储最后选择的项目,只需处理 SelectedItemChanged 事件并始终根据需要更新该字段。此外,正如 Dave Clemmer 建议的那样,拥有一个可以绑定的 IsSelected 属性有助于以编程方式选择项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    相关资源
    最近更新 更多