/// <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);
        }
示例#2
0
        /// <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";
        }
示例#4
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();
        }
示例#5
0
        /// <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();
        }
示例#6
0
 private void Initialize(MainModel parent)
 {
     Parent = parent;
     MapModels = new ObservableCollection<MapModel>();
 }