//コンストラクタ public StageViewModel(StageModel model, MainViewModel mainViewModel) { MainViewModel = mainViewModel; _model = model; _model.MapModels.CollectionChanged += (sender, args) => { _model.Parent.ResetMapModels(); if (args.Action == NotifyCollectionChangedAction.Add) { var maps = args.NewItems.Cast<MapModel>(); foreach (var m in maps) { var l = new PropertyChangedEventListener(m, (o, eventArgs) => { RaisePropertyChanged(eventArgs.PropertyName); RaisePropertyChanged("CurrentMap"); }); CompositeDisposable.Add(l); } if (CurrentMapIsNull) { _model.CurrentMap = maps.FirstOrDefault(); } RaisePropertyChanged("CurrentMap"); } }; CompositeDisposable.Add(new PropertyChangedEventListener(_model, (sender, e) => RaisePropertyChanged(e.PropertyName))); }
public MainWindow() { InitializeComponent(); _viewModel = new MainViewModel(); DataContext = _viewModel; Height = _viewModel.WindowHeight; Width = _viewModel.WindowWidth; }
private void EditStage(MainViewModel parameter) { var inputVewModel = new EditStageViewModel(_model, _model.Parent); Messenger.Raise(new TransitionMessage(inputVewModel, "TransitionStage")); }
private void CreateStage(MainViewModel parameter) { var inputVewModel = new EditStageViewModel(_model); Messenger.Raise(new TransitionMessage(inputVewModel, "TransitionStage")); if (_model.CurrentStage != null && _model.CurrentStage.MapModels.Count == 0) { CreateMapCommand.Execute(); } }