/// <summary>
        /// 新しいインスタンスを初期化します。
        /// </summary>
        public MainWindow()
        {
            Wf.Application.EnableVisualStyles();
            InitializeComponent();
            InitializeContextMenu();
            DataContext = this;

            ThumbnailSize = new System.Drawing.Size(96, 96);
            scenarioSelectListView.View = Wf.View.LargeIcon;

            ClearScenarioInfo();

            //初期グルーピング
            groupIdx = Scenario.SubItemIndex.ROUTE_TITLE;
            CheckSortMenuItem(menuItem_SortRouteTitle);

            //コンボボックスのアイテムを復元
            if (Properties.Settings.Default.PathList != null)
            {
                foreach (var path in Properties.Settings.Default.PathList)
                {
                    filePathComboBox.Items.Add(path);
                }
            }
        }
        /// <summary>
        /// シナリオのグルーピングとソートを行います。
        /// </summary>
        /// <param name="subIdx">グルーピングする項目</param>
        void GroupingFor(Scenario.SubItemIndex subIdx)
        {
            //シナリオ読み込み前は何もしない
            if (scenarioManager == null)
            {
                return;
            }

            //ソート
            List <Scenario> scenarios = scenarioManager.GetNewestSnapShot();

            scenarios.Sort((a, b) => string.Compare(a.Item.SubItems[(int)subIdx].Text, b.Item.SubItems[(int)subIdx].Text));

            scenarioSelectListView.Items.Clear();
            scenarioSelectListView.Groups.Clear();

            //グルーピング
            foreach (Scenario scenario in scenarios)
            {
                if (!scenario.DidDelete)
                {
                    scenarioSelectListView.Items.Add(scenario.Item);
                    scenario.AddGroup(scenarioSelectListView, (int)subIdx);
                }
            }

            //ウインドウのタイトルを変更
            int editNum = scenarioManager.NewestSnapEditCount();

            if (editNum > 0)
            {
                this.Title = "Bve5 Scenario Editor [" + editNum + "個のシナリオを編集中]";
            }
            else
            {
                this.Title = "Bve5 Scenario Editor";
            }
        }
 /// <summary>
 /// ファイル名でシナリオを並び替えます。
 /// </summary>
 /// <param name="sender">イベントのソース</param>
 /// <param name="e">イベントのデータ</param>
 void Sort_File(object sender, RoutedEventArgs e)
 {
     CheckSortMenuItem(sender);
     groupIdx = Scenario.SubItemIndex.FILE_NAME;
     GroupingFor(groupIdx);
 }
 /// <summary>
 /// 作者名でシナリオを並び替えます。
 /// </summary>
 /// <param name="sender">イベントのソース</param>
 /// <param name="e">イベントのデータ</param>
 void Sort_Author(object sender, RoutedEventArgs e)
 {
     CheckSortMenuItem(sender);
     groupIdx = Scenario.SubItemIndex.AUTHOR;
     GroupingFor(groupIdx);
 }
 /// <summary>
 /// 車両名でシナリオを並び替えます。
 /// </summary>
 /// <param name="sender">イベントのソース</param>
 /// <param name="e">イベントのデータ</param>
 void Sort_VehicleTitle(object sender, RoutedEventArgs e)
 {
     CheckSortMenuItem(sender);
     groupIdx = Scenario.SubItemIndex.VEHICLE_TITLE;
     GroupingFor(groupIdx);
 }