2011-03-11 91 views
4

查看信息,让我们假设我在WPF MVVM应用dragable节点。我需要加载并保存节点的位置及其逻辑。最简单的方法是通过存储库将位置和逻辑一起保存在一个xml文件中。但是,这意味着我会在模型和视图模型中查看信息。WPF MVVM:模型

有没有关于此情形的最佳实践方法,说不定我至今为止还没有考虑?

+1

为什么节点dragable?您想要存储哪个“职位”信息?将分层信息(级别,兄弟)存储在模型中并从视图中创建图形信息就足够了吗? – 2011-03-11 12:54:52

+0

节点及其连接表示图形数据操作过程。用户必须能够将该过程可视化为可变(类似于Visio)。我不得不保存画布中的x/y位置,因为我没有创建位置和节点,层次结构也很灵活。 – ps23 2011-03-11 13:29:53

回答

7

如果您的应用程序关心它向用户显示的UI元素的定位,那么我会说,这个定义定位数据是你的模型的一个非常合理的部分。

不要混淆真正的业务需求,从你的模型和的ViewModels解耦UI的理想选择。例如,在像Visio这样的应用程序中,可以说,页面中对象的确切位置是一个“仅供查看的细节”,重要的只是对象的属性及其之间的关系。然而,从用户的角度来看,对象在工作区布局非常重要。换句话说,它是你的数据模型的一部分。

+0

非常好,谢谢,这加强了我在保存模型中的数据的意义 – ps23 2011-03-11 13:30:47