1

2つのタブ内にデータグリッドがあります。したがって、2番目のタブをクリックすると、フィルターウィンドウが開きます(ではなく<popup>、そのa <window>)。私は次のようにやっています。

if (tabControl1.SelectedIndex == 1)  {      
     DashboardFilterView filterWindow = new DashboardFilterView();   
     filterWindow.ShowDialog();  }

ウィンドウの閉じるボタンをクリックすると閉じます。

質問

ポップアップウィンドウを閉じた後、現在のタブにあるデータグリッドの行をクリックすると、再びポップアップウィンドウが表示されます。

これが複数回発生するのを防ぐにはどうすればよいですか?

4

1 に答える 1

2

グリッド行のクリックでもイベントが発生するため、このtabControl1_SelectionChangedイベントがタブから発生するかどうかを確認するチェックを追加しました。

e.OriginalSource is TabControl問題を解決しました。

 private void tabControl1_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (e.OriginalSource is TabControl)
            {
                if (tabControl1.SelectedIndex == 0)
                {
                    // Do something               
                }
                else if (tabControl1.SelectedIndex == 1)
                {  
                    DashboardFilterView filterWindow = new DashboardFilterView();
                    filterWindow.ShowDialog();         
                }
            }

        }
于 2013-03-01T07:38:51.073 に答える