以前はWPFまたはMVVMパターンで作業していませんでした。
しかし、私は単純な文書管理システムを作成したいと思いますし、上記の技術を使用してそうしたいと思います。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要素を説明するためにのみ関連する追加のプロパティを実装して関連するビューモデルのクラスを有していなければなりません。
この場合、ビューモデルクラスはtreeviewitemのisExpandedプロパティとisSelectedプロパティを持つ必要があります。
次に、表示されるべきディレクトリとファイルのコレクションを含むツリービュー全体の別のビューモデルクラスが必要になります。
私の質問は以下のとおりです。
- は私が正しくMVVMの概念を理解したことがありますか?
- ディレクトリのモデルまたはビューモデルのどのクラスがiNotifyPropertyChangedインターフェイスを実装する必要がありますか?
- ディレクトリのビュー・モデル・クラスには、モデル・クラスと同じプロパティが含まれているか、ビュー・モデル・クラスのモデル・オブジェクトへの参照で十分ですか?
- ビューモデルクラスにモデルクラスの同じプロパティを再度含める必要がある場合は、モデルオブジェクトと関連するビューモデルオブジェクトが常に同期した状態に保たれるようにするにはどうすればよいでしょうか?
私はこの質問が理解可能であり、すべての助けに感謝したいと思います。 アンナハリ
質問2-4は、必ず個別に質問されています。 –
HierarchicalDataTemplate – Will