我以前沒有用過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