在 C# WPF MVVM 中保持 TreeView ViewModel 和模型同步的策略

问题描述 投票:0回答:2

我尝试在拖放操作期间使 TreeView 与我的数据层保持同步。

问题

  1. TreeView 中的拖放操作是否应该作用于 ItemViewModel,还是应该将这些操作发送到服务/数据层,然后更新 ItemViewModel?
  2. 我目前有两种树结构,一种在数据层,一种在视图层。关于问题1,这是正确的方法吗?
c# wpf mvvm treeview
2个回答
0
投票

TreeView 中的拖放操作应该作用于 ItemViewModel 还是应该将这些操作[发送]到服务/数据层,然后更新 ItemViewModel?

您的事实来源需要首先更新。如果删除后的视图与事实来源不一致,则需要通过获取事实并重新加载树来刷新视图。

如果调用的负载不影响处理,那么在更新真相来源之后重新加载数据并不是一个坏主意。这种更新始终是通过删除对列表的引用来完成的,只是为了提供新列表的引用,从而导致屏幕更新。

我目前有两种树结构,一种在数据层,一种在视图层。关于问题1,这是正确的方法吗?

正确的方法是在进行操作时权衡编码便利性与视图 (GUI) 速度的方法。这个决定是你的。


0
投票
https://github.com/PropertyTools/PropertyTools/tree/develop/Source/Examples/TreeListBox

中找到了 TreeListBox 示例,这是一个有用的示例。它具有模型和视图模型之间的分离以及拖放/删除功能,同时保持模型同步

© www.soinside.com 2019 - 2024. All rights reserved.