[英]Pop-up window in a WPF application
我有一个C#WPF应用程序,该应用程序显示在xaml(P屏幕)中使用Grid控件。对于网格中的每一行,我都有一个名为Details的列。单击此列中的项目会显示一个弹出窗口,其中也包含xaml(C屏幕)中的网格。 P的视图模型中的我的项目单击事件具有以下代码:
var myChildWindow = new MyGridView();
myChildWindow.Show();
如果用户多次单击该项目,我只想突出显示现有的C弹出窗口。如果没有现有的窗口打开,那么只有我想打开一个新窗口。
我已经为Winforms应用程序满足了类似的要求,请问如何为WPF应用程序解决呢?
谢谢。
首先,您需要在click事件之外声明myChildWindow
,以便可以从多个事件访问它。 所以,
MyGridView myChildWindow;
超出了click事件,可能是私有变量。
然后,在您的click事件中查看它是否为null
,如果是,则创建它。
if (myChildWindow == null)
{
myChildWindow = new MyGridView();
myChildWindow.Show();
}
您可以保留对窗口的引用,并在关闭窗口时删除该引用:
MyGridView myChildWindow;
private void Button_Click(object sender, RoutedEventArgs e)
{
if (myChildWindow == null)
{
myChildWindow = new MyGridView();
myChildWindow.Closed += MyChildWindow_Closed;
myChildWindow.Show();
}
else
{
myChildWindow.Activate();
}
}
private void MyChildWindow_Closed(object sender, EventArgs e)
{
myChildWindow.Closed -= MyChildWindow_Closed;
myChildWindow = null;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.