/// <summary>
        /// データグリッドをクリックしたときの処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dgUnionAnswer_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            // データ0件なら処理しない
            if (dgUnionAnswer.Items.Count == 0)
            {
                return;
            }
            // データの無い部分のクリックなら処理しない
            if (dgUnionAnswer.CurrentColumn == null)
            {
                return;
            }
            string strTitle = dgUnionAnswer.CurrentColumn.Header.ToString();
            string strCellValue;
            string strCellTribe;
            int    iCellGrade;
            int    iCellRare;

            switch (strTitle)
            {
            case "悪魔名1":
                // 悪魔1の情報取得
                strCellValue = ((TextBlock)dgUnionAnswer.CurrentColumn.GetCellContent(dgUnionAnswer.SelectedItem)).Text;
                strCellTribe = ((TextBlock)dgUnionAnswer.Columns[2].GetCellContent(dgUnionAnswer.SelectedItem)).Text;
                iCellGrade   = int.Parse(((TextBlock)dgUnionAnswer.Columns[0].GetCellContent(dgUnionAnswer.SelectedItem)).Text);
                iCellRare    = int.Parse(((TextBlock)dgUnionAnswer.Columns[1].GetCellContent(dgUnionAnswer.SelectedItem)).Text);
                // 自身のウィンドウを開く。
                Window DevilUnionWindowBase = new DevilUnion(strCellValue, strCellTribe, iCellGrade, iCellRare, e.ChangedButton);
                //DevilUnionWindowBase.ShowDialog();
                DevilUnionWindowBase.Show();
                break;

            case "悪魔名2":
                // 悪魔2の情報取得
                strCellValue = ((TextBlock)dgUnionAnswer.CurrentColumn.GetCellContent(dgUnionAnswer.SelectedItem)).Text;
                strCellTribe = ((TextBlock)dgUnionAnswer.Columns[7].GetCellContent(dgUnionAnswer.SelectedItem)).Text;
                iCellGrade   = int.Parse(((TextBlock)dgUnionAnswer.Columns[5].GetCellContent(dgUnionAnswer.SelectedItem)).Text);
                iCellRare    = int.Parse(((TextBlock)dgUnionAnswer.Columns[6].GetCellContent(dgUnionAnswer.SelectedItem)).Text);
                // 自身のウィンドウを開く。
                Window DevilUnionWindowAdd = new DevilUnion(strCellValue, strCellTribe, iCellGrade, iCellRare, e.ChangedButton);
                //DevilUnionWindowBase.ShowDialog();
                DevilUnionWindowAdd.Show();
                break;
            }
        }
        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target)
        {
            switch (connectionId)
            {
            case 1:
                this.UnionAnswer = ((DevilAnalyzer.DevilUnion)(target));

            #line 8 "..\..\DevilUnion.xaml"
                this.UnionAnswer.KeyUp += new System.Windows.Input.KeyEventHandler(this.UnionAnswer_KeyUp);

            #line default
            #line hidden
                return;

            case 2:
                this.lblDevilName = ((System.Windows.Controls.Label)(target));
                return;

            case 3:
                this.lblGrade = ((System.Windows.Controls.Label)(target));
                return;

            case 4:
                this.lblReality = ((System.Windows.Controls.Label)(target));
                return;

            case 5:
                this.dgUnionAnswer = ((System.Windows.Controls.DataGrid)(target));

            #line 23 "..\..\DevilUnion.xaml"
                this.dgUnionAnswer.MouseDoubleClick += new System.Windows.Input.MouseButtonEventHandler(this.dgUnionAnswer_MouseDoubleClick);

            #line default
            #line hidden
                return;

            case 6:
                this.lblUnionCount = ((System.Windows.Controls.Label)(target));
                return;
            }
            this._contentLoaded = true;
        }
        /// <summary>
        /// 検索結果のセルをダブルクリックしたときの処理
        /// </summary>
        private void dgSearch_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            // 処理の無いセルをダブルクリックし続けていると落ちる現象が発生したため、
            // 処理の無いセルの場合何もせず関数を抜けるよう修正。
            try
            {
                // データ件数0なら処理しない
                if (dgSearch.Items.Count == 0)
                {
                    return;
                }
                // データの無い部分のクリックなら処理しない
                if (dgSearch.CurrentColumn == null)
                {
                    return;
                }
                string strTitle = dgSearch.CurrentColumn.Header.ToString();
                switch (strTitle)
                {
                case "スキル1":
                case "スキル2":
                case "スキル3":
                case "荒神プレミアム":
                case "加護プレミアム":
                case "異能プレミアム":
                case "防魔プレミアム":
                case "素体スキル":
                case "荒神スキル":
                case "加護スキル":
                case "異能スキル":
                case "防魔スキル":
                case "悪魔名":
                    if (dgSearch.SelectedItem != null)
                    {
                        // 1行目でタイトル取得、2行目でセルの値取得
                        //MessageBox.Show(dgSearch.CurrentColumn.Header.ToString() + ";" +
                        //    ((TextBlock)dgSearch.CurrentColumn.GetCellContent(dgSearch.SelectedItem)).Text);

                        string strCellValue = ((TextBlock)dgSearch.CurrentColumn.GetCellContent(dgSearch.SelectedItem)).Text;
                        // 種族名取得
                        string strCellTribe = ((TextBlock)dgSearch.Columns[3].GetCellContent(dgSearch.SelectedItem)).Text;
                        int    iCellGrade   = int.Parse(((TextBlock)dgSearch.Columns[1].GetCellContent(dgSearch.SelectedItem)).Text);
                        int    iCellRare    = int.Parse(((TextBlock)dgSearch.Columns[2].GetCellContent(dgSearch.SelectedItem)).Text);

                        SkillDetail SkillDetailWindow;

                        switch (strTitle)
                        {
                        case "スキル1":
                        case "スキル2":
                        case "スキル3":
                        case "荒神プレミアム":
                        case "加護プレミアム":
                        case "異能プレミアム":
                        case "防魔プレミアム":
                            // スキル関係の場合。スキル詳細ウィンドウを開く
                            SkillDetailWindow = new SkillDetail(strCellValue, false);
                            if (SkillDetailWindow.bTargetSkill == true)
                            {
                                SkillDetailWindow.Owner = GetWindow(this);
                                SkillDetailWindow.ShowDialog();
                            }
                            break;

                        case "素体スキル":
                        case "荒神スキル":
                        case "加護スキル":
                        case "異能スキル":
                        case "防魔スキル":
                            // 覚醒スキル関係の場合。スキル詳細ウィンドウを開き、MPには-1を表示する。
                            SkillDetailWindow = new SkillDetail(strCellValue, true);
                            if (SkillDetailWindow.bTargetSkill == true)
                            {
                                SkillDetailWindow.Owner = GetWindow(this);
                                SkillDetailWindow.ShowDialog();
                            }
                            break;

                        case "悪魔名":
                            // 悪魔名の場合、その悪魔を作成可能な組み合わせを表示する。
                            Window DevilUnionWindow = new DevilUnion(strCellValue, strCellTribe, iCellGrade, iCellRare, e.ChangedButton);
                            //DevilUnionWindow.ShowDialog();
                            DevilUnionWindow.Show();
                            break;

                        default:
                            break;
                        }
                    }
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(string.Format("エラーが発生しました。行った操作を添えて開発者に連絡願います。 "));
            }
        }