예제 #1
0
        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();
        }