在现有项目中实施MVVM

本文关键字:MVVM 项目 | 更新日期: 2023-09-27 18:29:53

我对WPF还很陌生,但多亏了互联网上的所有资源,我已经能够创建一个相当不错的(imho)演示程序。在我开始编写程序之前,我研究了MVVM方法,但没有预见到我的程序会变得如此庞大。不用说太多细节,我在一侧有一个列表框,其中填充了属性列表。它直接绑定到我的SQL CE数据库(v4.0),这意味着每当对属性进行更改时,我都需要刷新我的列表框。最初这不是一个问题,但现在我想允许通过拖放重新排列,所以我相信我需要实现某种形式的可观察集合来实现这一点。如果我说得不太有意义,很抱歉,但根据我收集的信息,你不能直接在数据库中重新排列对象(或者这不明智)。

基本上,我的问题是如何在我的应用程序中实现一个可观察的集合,即使用我现有的数据库进行持久性?只要有可能,我并不担心所涉及的工作。我可以使用分部类吗?

干杯

在现有项目中实施MVVM

我建议看看Caliburn Micro或Mvvm Light。我个人使用CM.

我在bitbucket上添加了一个示例WPF应用程序,展示了如何将Listbox绑定到BindableCollection(CM的ObservableCollection)。有一个刷新按钮,用于填充BindableCollection MyProperties

代码没有太多内容,因为CM正在为您做一些工作。我建议你通读一下这些文档,它们有点长,但很值得

在您的案例中,您将从sqlcedb中填充集合。我不确定财产的顺序是否重要。如果您想允许拖放来重新排序并保持可以执行的顺序。

当对ListBox中的属性进行更改时,这些更改将反映在ListBox绑定到的集合中。您需要决定何时将这些更改保留到DB中。