我在两个标签中有一个数据网格。因此,当第二个标签点击它时,应该打开一个过滤器窗口(不是<popup>
,而是<window>
)。我这样做。
if (tabControl1.SelectedIndex == 1) {
DashboardFilterView filterWindow = new DashboardFilterView();
filterWindow.ShowDialog(); }
当我点击窗口的关闭按钮时,它会关闭。
问题:
关闭弹出窗口后,如果单击当前标签中的datagrid行,则会再次显示弹出窗口。
如何防止这种情况发生多次?
答案 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();
}
}
}