示例#1
0
        //コンストラクタ
        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;
        }
示例#3
0
 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();
            }
        }