/// <summary> /// ���ɑ��݂���StageModel����ҏW��ʗpViewModel��쐬 /// </summary> /// <param name="stageModel"></param> /// <param name="mainModel"></param> public EditStageViewModel(StageModel stageModel, MainModel mainModel) { _parent = mainModel; _model = stageModel; Initislize(stageModel); }
/// <summary> /// ファイルからStageModelを生成 /// </summary> /// <param name="fi"></param> /// <param name="parent"></param> public StageModel(FileInfo fi, MainModel parent) { Initialize(parent); FileInfo = fi; SerializeMessagePack(FileInfo.FullName); CurrentMap = MapModels.FirstOrDefault(); }
/// <summary> /// ��̕ҏW��ʗpViewModel��쐬 /// </summary> /// <param name="mainModel"></param> public EditStageViewModel(MainModel mainModel) { _parent = mainModel; Initialize(); //�����l�ݒ� InputStageName = "���[���h 0 �X�e�[�W 0"; }
/// <summary> /// コンストラクタ /// </summary> public MainViewModel() { //設定ファイルの読み込み Settings = new Settings(); //セレクターのサイズの初期化 MouseSelectorPosition.GridSize = Settings.PalletCellSize; FontSize = 9; StageModel.Dir = new DirectoryInfo(Settings.StageDataDirectory); _model = new MainModel(Settings); MapChipPalletViewModel = new MapChipPalletViewModel(Settings); ObjectChipPalletViewModel = new ObjectChipPalletViewModel(Settings); MapChipPalletViewModel.PalletEnterEvent += chip => _model.CurrentPositionMapChip = chip.ID == 0 ? null : chip; ObjectChipPalletViewModel.PalletEnterEvent += chip => _model.CurrentPositionObjectChip = chip.ID == 0 ? null : chip; PalletViewModelManager = new PalletViewModelManager(MapChipPalletViewModel, ObjectChipPalletViewModel); StageViewModels = ViewModelHelper.CreateReadOnlyDispatcherCollection( _model.StageModels, m => { var vm = new StageViewModel(m, this); vm.PropertyChanged += (sender, args) => RaiseModelPropertyChanged(args.PropertyName); return vm; }, DispatcherHelper.UIDispatcher); //TreeViewの要素リストを監視 MapViewModels = ViewModelHelper.CreateReadOnlyDispatcherCollection( _model.MapModels, model => { var vm = new MapViewModel(model); vm.PropertyChanged += (sender, args) => RaiseModelPropertyChanged(args.PropertyName); return vm; }, DispatcherHelper.UIDispatcher); //MainModelのプロパティ変更を監視 Listener = new PropertyChangedEventListener(_model); Listener.RegisterHandler((sender, args) => RaisePropertyChanged(args.PropertyName)); Listener.RegisterHandler("CurrentMap", (sender, args) => CurrentMapChenged()); Listener.RegisterHandler("Scale", (sender, args) => { RaisePropertyChanged("MapWidth"); RaisePropertyChanged("MapHeight"); }); Listener.RegisterHandler("CurrentPosition", (sender, args) => _model.UpdateMousePositionProperty()); CompositeDisposable.Add(Listener); ChangeMapInitialize(); }
/// <summary> /// EditViewModelからSatgeModelを生成 /// </summary> /// <param name="editViewModel"></param> /// <param name="parent"></param> public StageModel(EditStageViewModel editViewModel, MainModel parent) { Initialize(parent); SetProperties(editViewModel); World = Int32.Parse(editViewModel.InputWorld); Stage = Int32.Parse(editViewModel.InputStage); StageName = editViewModel.InputStageName; StageDescription = editViewModel.InputStageDescription; CurrentMap = MapModels.FirstOrDefault(); }
private void Initialize(MainModel parent) { Parent = parent; MapModels = new ObservableCollection<MapModel>(); }