2012-01-14 48 views
0

在我的應用程序中,我使用隱藏和可見的porperties使窗戶不顯示給用戶。 現在,在某些時候,當我在Window1中時,我想檢查是否仍有隱藏的主窗口實例。 谷歌搜索,我發現(也SO),我需要使用此代碼:爲什麼不做這項工作? - 獲取一個隱藏的窗口

Window deze = Application.Current.Windows.OfType<MainWindow>().Where(x => x.Name == "MainWindow").FirstOrDefault(); 

但無論我填寫的部分OfType<MainWindow>或爲"MainWindow"它一直返回null,即使IM 100%肯定有必須是1個實例。

在主窗口的代碼檢查,被稱爲在Solution Explorer(視覺快遞)「mainWindow.xaml」 我看到,代碼如下:

namespace WpfApplication1 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    {  
     //creating the exitmessage for use later on, after all, we want to use this in an other method. 


     public MainWindow() 
     { 
...... 
     } 

我真的沒有在所有線索中,當im 100%確定存在主窗口的隱藏實例時,爲什麼「Window deze」會一直返回null。

任何人都有這個想法嗎? 我只是完全忽略了一些合理的解決方案?

thanx提前!

回答

1

Where是多餘的,因爲您會看到它檢查與您無關的特定名稱。

+1

是的。名稱與Window的類名不同 – kenny 2012-01-14 21:29:54

+0

@kenny:這是一個很好的說明。 – 2012-01-14 21:41:52

1

試試這個:

Window deze = Application.Current.Windows.OfType<MainWindow>().FirstOrDefault(); 

你在做什麼期待在窗口叫名字的屬性,如果它的字符串「主窗口」匹配看到。它不是。既然你已經在尋找這種類型(其中只有一個),你只需要將第一個返回到你的變量。