我以前没有用过WPF或MVVM模式。
但是我想创建一个简单的文档管理系统,并希望使用上述技术。如何使用WPF treeview实现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元素为该类的哪些对象将被绑定相关的其他属性相关联的视图模型类。
在这种情况下,视图模型类应该具有treeviewitem的isExpanded和isSelected属性。
然后,我需要另一个视图模型类为整个树视图,其中将包含应该显示的导演和文件的集合。
我的问题是:
- 我有没有正确地理解MVVM概念?
- 目录的哪个类,模型或视图模型应该实现iNotifyPropertyChanged接口?
- 目录的视图模型类应该包含与模型类相同的属性,还是视图模型类中对模型对象的引用是否足够?
- 如果视图模型类应该再次包含模型类的相同属性,那么确保模型对象和关联的视图模型对象始终保持同步的最佳方法是什么?
我希望这个问题是可以理解的,谢谢你的一切帮助。 Andahari
问题2-4肯定是单独提出的。 –
HierarchicalDataTemplate – Will