如何使Window var全局化

时间:2015-01-30 18:51:06

标签: c# global partial-classes

我正在使用一段代码,允许我编辑另一个窗口,例如位于内部的文本框:

var MessageBox_Window = System.Windows.Application.Current.Windows.Cast<Window>().FirstOrDefault(window => window is MessageBoxWindow) as MessageBoxWindow;

我需要能够不断更改此窗口的内容但是我不能将var放在部分类中,如果我把它放在其他任何地方它不是全局的。如果我要使用:

ProjectName.MessageBoxWindow MessageBox_Window = System.Windows.Application.Current.Windows.Cast<Window>().FirstOrDefault(window => window is MessageBoxWindow) as MessageBoxWindow;

在部分课程中,每当我尝试更改内容时,我都会得到NullReferenceException.

有没有办法让这个代码全局化,以便可以从窗口内的任何地方访问它?

2 个答案:

答案 0 :(得分:1)

正如Servy所说,你不应该直接使用该窗口(并且从另一个线程执行此操作,而不是该窗口的UI线程)。

考虑拥有一个包含您要共享的所有参数的类。您的MessageBoxWindow负责根据这些参数绘制自己,而其他窗口可以自由更改它们。

答案 1 :(得分:0)

使用static类:

static class globalClass
{
    public static string globalData { get; set; }
}

并设置它:

globalClass.globalData = "some value"