在我的应用程序中,我使用隐藏和可见的porperties来使窗口显示或不显示给用户。 现在在某些时候,当我在Window1中时,我想检查是否还有一个主窗口的实例,它是隐藏的。 谷歌搜索,我发现(也在SO)我需要使用此代码:
Window deze = Application.Current.Windows.OfType<MainWindow>().Where(x => x.Name == "MainWindow").FirstOrDefault();
但无论我填写的是OfType<MainWindow>
部分还是"MainWindow"
,它都会保持返回null,即使我100%确定必须有1个实例。
签入主窗口的代码,在解决方案资源管理器(visual express)中调用“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”会一直返回null。
有人对此有所了解吗? 我完全忽略了一些合乎逻辑的解决方案?
提前完成!
答案 0 :(得分:1)
Where
是多余的,因为您会看到它检查特定名称,这与您无关。
答案 1 :(得分:1)
试试这个:
Window deze = Application.Current.Windows.OfType<MainWindow>().FirstOrDefault();
您正在做的是查看名为name的窗口的属性,并查看它是否与字符串“MainWindow”匹配。它不是。由于您已经在寻找这种类型(只有一种类型),您只需要将第一个返回到您的变量。