public ContentFolderViewModel(ContentFolder model, ContentFolderViewModel parent, IMessenger messenger) : base(messenger) { this.model = model; Parent = parent; Children = new ObservableCollection<ContentFolderViewModel>(); Children.Add(dummyChild); CreateSubFolderCommand = new RelayCommand(CreateSubFolder, () => IsSelected); DeleteCommand = new RelayCommand(Delete, () => IsSelected); }
public ContentFileViewModel(ContentFile model, ContentFolderViewModel parent, IMessenger messenger) : base(messenger) { this.model = model; Parent = parent; IsAsset = (model.Asset != null); EditCommand = new RelayCommand(Edit); ViewCommand = new RelayCommand(View, () => IsAsset); DeleteCommand = new RelayCommand(Delete); RegisterAsAssetCommand = new RelayCommand(RegisterAsAsset, () => !IsAsset); EditAssetCommand = new RelayCommand(EditAsset, () => IsAsset); UnregisterAsAssetCommand = new RelayCommand(UnregisterAsAsset, () => IsAsset); }
void CreateProject() { // プロジェクトが既に開かれていて、変更があるならば、保存を促します。 PromptSaveProject(); var message = new NewProjectMessage(); Messenger.Send(message); if (message.Result != true) return; var fileName = message.ProjectName + ".contentproj"; var path = Path.Combine(message.DirectoryPath, fileName); // プロジェクトが既に開かれているならば、それを閉じます。 CloseProject(); Model.NewProject(path); CurrentFolder = new ContentFolderViewModel(Model.RootFolder, null, Messenger); RootFolders.Add(CurrentFolder); // 展開状態に設定します。 CurrentFolder.IsExpanded = true; // 選択状態に設定します。 CurrentFolder.IsSelected = true; // タイトルに選択したプロジェクト ファイル名を設定します。 Title = Path.GetFileName(Model.Project.FullPath) + " - Content Studio"; }
public void OpenProject(string path) { // プロジェクトが既に開かれているならば、それを閉じます。 // 同一プロジェクトを選択した場合にはロード状態の衝突が発生するため、 // 選択したプロジェクトを開く前に既存のプロジェクトを閉じます。 CloseProject(); // プロジェクトを開きます。 Model.OpenProject(path); CurrentFolder = new ContentFolderViewModel(Model.RootFolder, null, Messenger); RootFolders.Add(CurrentFolder); // 展開状態に設定します。 CurrentFolder.IsExpanded = true; // 選択状態に設定します。 CurrentFolder.IsSelected = true; // タイトルに選択したプロジェクト ファイル名を設定します。 Title = Path.GetFileName(Model.Project.FullPath) + " - Content Studio"; }