[英]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.