コード例 #1
0
        public MainViewModel()
        {
            // 設定のアップグレード
            if (!Properties.Settings.Default.IsUpgrade) {
                Properties.Settings.Default.Upgrade();
                Properties.Settings.Default.IsUpgrade = true;
                Properties.Settings.Default.Save();
                MessageBox.Show("設定をアップグレードしました。");
            }

            ProgressBar = new ProgressBarViewModel();
            MessageBar = new MessageBarViewModel();

            UnitParam = new UnitParamViewModel();
            UnitDrop = new UnitDropViewModel();
            UnitSkill = new UnitSkillViewModel();
            UnitMap = new UnitMapViewModel();
            UnitMap.SelectMobChanged += (sender, mob) => {
                SelectedUnit = SelectedPatch.Units.FirstOrDefault(a => a.Id == mob.Id);
            };

            Root = Properties.Settings.Default.Root;
            if (Directory.Exists(Properties.Settings.Default.ChatDir))
                Chat = new DirectoryInfo(Properties.Settings.Default.ChatDir);

            RootChangedCommand = CreateCommand(
                exe => RootChanged(),
                can => { return true; });
            FileReadCommand = CreateCommand(
                exe => FileRead(),
                can => { return !string.IsNullOrEmpty(Root); });
            ChatChangedCommand = CreateCommand(
                exe => ChatFolderChanged(),
                can => { return true; });
            TimerStartCommand = CreateCommand(
                exe => Timer.Start(),
                can => { return Chat != null && Timer != null && !Timer.IsEnabled; });
            TimerStopCommand = CreateCommand(
                exe => Timer.Stop(),
                can => { return Timer != null && Timer.IsEnabled; });

            Timer = new DispatcherTimer();
            Timer.Interval = TimeSpan.FromMilliseconds(Properties.Settings.Default.Interval);
            Timer.Tick += Timer_Tick;
        }