限制重复对话框的打开

时间:2015-10-29 10:05:50

标签: c# wpf

我有一个WPF父子应用程序,父窗口是功能区窗口,单击RibbonButton时,将打开子窗口。

打开窗口代码是:

MyWindow uiObj=new MyWindow();
ShowWindow(uiObj, this);

我已编写此函数,因为这将是单独的dll,它不应该特定于任何特定的UI

public void ShowWindow(Object Obj, Object ObjThis)
{
    Window winObj = (Window)Obj;
    winObj.Owner = (Window)ObjThis;
    winObj.ShowInTaskbar = false;
    winObj.Show();            
}

我需要什么: 只要点击相同的按钮,我想检查窗口是否打开然后打开。

我不能将我的UI类声明为

MyWindow uiObj;

MyWindow uiObj = null;

并传递给我的函数

ShowWindow(uiObj, this);

因此窗口对象将在制作" new"之后传递。并检查像" null"工作

我相信会有更好的解决方案。

1 个答案:

答案 0 :(得分:0)

你可以捕获事件:结束/显示:

MyWindow uiObj=new MyWindow();
uiObj.Closing+={windowsOpened = false;}
uiObj.Shown+={windowsOpened = true;}
public void ShowWindow(Object Obj, Object ObjThis)
{ 
if(windowsOpened)return;
...