私は、ツリービューでユーザーにファイル/フォルダの一覧を表示するWPFアプリケーションを持っていて、アプリケーションのために読み込むものを選択します。 ViewModelには、UIにバインドされDirectoryItemクラス内のフォルダ/ファイルを格納します。私は今、それを処理しています方法は、モデルルートディレクトリに合格し、すべてのファイルと文字列のリストを返します WPFファイルリストからカスタムオブジェクトへの変換 - モデルまたはViewModel?
public class DirectoryItem : INotifyPropertyChanged
{
public String DisplayName { get; set; }
public String Fullpath { get; set; }
public ObservableCollection<DirectoryItem> Children { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
}
ルートディレクトリ内/下。 ViewModelには、リストをDirectoryItemsのObservableCollectionに変換するBuildDirectoryItemCollection関数があります。
これは私の最初のWPFアプリケーションですので、MVVMパターンに正しく従っていることを確認します。リストからObservableCollectionへの変換がViewModelで行われるべきであると考えていますか?モデルはDirectoryItemクラスの知識を持っているべきですか?
そして、私は、ファイルパスのリストを渡して、そのリストからフォルダ構造を再構築することが、ObservableCollectionを構築する良い方法であるとは確信していません。私はこれを行うより良い方法についての提案にはオープンです!
お時間をいただきありがとうございます。
ObservableCollection <>はList <>のようにIEnumerableを実装していますか?もしそうなら、それはモデル – Jacek
でそれを使用することはOKです。これがdtoまたはドメインモデルであれば、私は 'INotifyPropertyChanged'を実装しません。 – NtFreX
これを拡張できますか?私はあなたが何を意味するか分からない。ユーザーが別のルートパスを選択してファイルのリストを再構築する必要がある場合は、UIに通知する必要があります – cjw