【发布时间】:2016-08-08 14:25:09
【问题描述】:
我之前没有使用过 WPF 或 MVVM 模式。
但是,我想创建一个简单的文档管理系统,并希望使用上述技术来实现。
我已经在我的数据库中建模了一个分层文件系统,并希望在树视图中显示它。
EER-Diagramm
如您所见,每个目录可以有多个子目录和多个文件。
我已经阅读了一些关于该主题的教程,如果我理解正确,那么我应该为直接存储数据库数据的目录和文件创建模型类。
示例:
public class Directory
{
private int id;
public int Id
{
get { return id; }
set { id = value; }
}
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private int parent;
public int Parent
{
get { return parent; }
set { parent = value; }
}
private DateTime dateCreatedOn;
public DateTime DateCreatedOn
{
get { return dateCreatedOn; }
set { dateCreatedOn = value; }
}
}
然后每个模型类都应该有一个关联的视图模型类,它实现了仅与描述此类对象将绑定到的 UI 元素相关的附加属性。
在这种情况下,视图模型类应该具有树视图项的 isExpanded 和 isSelected 属性。
然后我需要另一个视图模型类用于整个树视图,其中包含应该显示的目录和文件的集合。
我的问题是:
- 我是否正确理解了 mvvm 概念?
- 目录的哪个类(模型或视图模型)应该实现 iNotifyPropertyChanged 接口?
- 目录的视图模型类是否应该包含与模型类相同的属性,或者对视图模型类中模型对象的引用是否足够?
- 如果视图模型类应该再次包含模型类的相同属性,那么确保模型对象和关联的视图模型对象始终保持同步的最佳方法是什么?
我希望这个问题是可以理解的,并感谢所有帮助。 安达哈里
【问题讨论】:
-
问题 2-4 之前肯定已经单独提出过。
-
分层数据模板