public ImportVoxelViewModel(BaseViewModel parentViewModel, ImportVoxelModel dataModel, IDialogService dialogService, Func<IOpenFileDialog> openFileDialogFactory) : base(parentViewModel) { Contract.Requires(dialogService != null); Contract.Requires(openFileDialogFactory != null); _dialogService = dialogService; _openFileDialogFactory = openFileDialogFactory; _dataModel = dataModel; // Will bubble property change events from the Model to the ViewModel. _dataModel.PropertyChanged += (sender, e) => OnPropertyChanged(e.PropertyName); }
public ImportVoxelViewModel(BaseViewModel parentViewModel, ImportVoxelModel dataModel) : this(parentViewModel, dataModel, ServiceLocator.Resolve<IDialogService>(), ServiceLocator.Resolve<IOpenFileDialog>) { }
public void ImportVoxelExecuted() { var model = new ImportVoxelModel(); var position = ThePlayerCharacter != null ? ThePlayerCharacter.PositionAndOrientation.Value : new MyPositionAndOrientation(Vector3D.Zero, Vector3.Forward, Vector3.Up); model.Load(position); var loadVm = new ImportVoxelViewModel(this, model); var result = _dialogService.ShowDialog<WindowImportVoxel>(this, loadVm); if (result == true) { IsBusy = true; var newEntity = loadVm.BuildEntity(); var structure = _dataModel.AddEntity(newEntity); ((StructureVoxelModel)structure).SourceVoxelFilepath = loadVm.SourceFile; // Set the temporary file location of the Source Voxel, as it hasn't been written yet. if (_preSelectedStructure != null) SelectedStructure = _preSelectedStructure; IsBusy = false; } }