如何防止我的对话框多次打开?

时间:2013-02-28 09:57:54

标签: c# wpf mvvm

我在两个标签中有一个数据网格。因此,当第二个标签点击它时,应该打开一个过滤器窗口(不是<popup>,而是<window>)。我这样做。

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

当我点击窗口的关闭按钮时,它会关闭。

问题

关闭弹出窗口后,如果单击当前标签中的datagrid行,则会再次显示弹出窗口。

如何防止这种情况发生多次?

1 个答案:

答案 0 :(得分: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();         
                }
            }

        }