public MainWindowViewModel(IContainerExtension container, IRegionManager regionManager) { var modelMaster = container.Resolve <ModelMaster>(); // Modelのプロパティを参照 BasePath = modelMaster .ObserveProperty(x => x.TargetDirectoryPath) .ToReadOnlyReactiveProperty(); // 対象ディレクトリ内のファイル一覧 ChildFiles = BasePath .Select(path => DirectoryNode.GetChildFileNames(path)) .Select(x => string.Join(Environment.NewLine, x)) .ToReadOnlyReactiveProperty(); }
public MainWindowViewModel() { // 選択中ディレクトリの更新 var directoryTree = BasePath .Select(path => new DirectoryTree(path)) .ToReadOnlyReactivePropertySlim(); // 末端ディレクトリ内のファイル一覧 ChildFiles = directoryTree .Select(x => x.Nodes.LastOrDefault()?.ChildFileNames) .Where(x => x != null) .Select(x => string.Join(Environment.NewLine, x)) .ToReadOnlyReactiveProperty(); // 選択ディレクトリのノードチェーン DirectoryNodeChain = directoryTree.Select(x => x.Nodes) .ToReadOnlyReactiveProperty(); }