2012-01-14 4 views
0

私のアプリケーション内では、私は隠して見える部分を使って、ウィンドウをどのように表示するかをユーザに示します。 今、ある時点で、私がWindow1にいるときに、メインウィンドウのインスタンスがまだ隠されているかどうかをチェックしたいと思います。 グーグルで、私はこのコードを使用する必要があること(もSO上)が見つかりました:、なぜこの作品はありませんか? - 隠されているウィンドウを取得する

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

しかし、何でも、私は一部OfType<MainWindow>のためか、それはnullを返し続け"MainWindow"のために記入してもイムは100%を確認しますが1インスタンスでなければなりません。

それは私はコードは次のようになりますことを確認 「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() 
     { 
...... 
     } 

私は本当にありません持っていますあなたがメインウィンドウの隠されたインスタンスがあることを100%確かめると、なぜ "Window deze"がヌルを返すのか。

誰でもこのアイデアを得ましたか? 私はいくつかの論理的な解決策を完全に見落としていますか?

thanx!

答えて

1

Whereは冗長です。特定の名前がないかどうかを確認します。問題はありません。

+1

はい。名前はウィンドウのクラス名とは別のものです – kenny

+0

@kenny:それは良い説明です。 –

1

このお試しください:何をやっている

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

は名前と呼ばれるウィンドウのプロパティを見て、それが文字列「メインウィンドウ」と一致する場合は見ています。それはしません。あなたは既にこのタイプ(そのうちの1つしかありません)を探しているので、最初の変数を変数に戻す必要があります。

関連する問題