我在两个选项卡中都有一个数据网格。因此,在单击第二个选项卡时,它应该打开一个过滤器窗口(而不是<popup>
,而是<window>
)。我正在做如下。
if (tabControl1.SelectedIndex == 1) {
DashboardFilterView filterWindow = new DashboardFilterView();
filterWindow.ShowDialog(); }
当我单击窗口的关闭按钮时,它关闭了。
问题:
关闭弹出窗口后,如果我单击当前选项卡中的datagrid行,则会再次显示弹出窗口。
如何防止这种情况发生不止一次?
最佳答案
由于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();
}
}
}
关于c# - 如何防止我的对话框多次打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15132493/