如何使 Window var 全局
How to make Window var global
我正在使用一段代码来编辑另一个 window,例如位于内部的文本框:
var MessageBox_Window = System.Windows.Application.Current.Windows.Cast<Window>().FirstOrDefault(window => window is MessageBoxWindow) as MessageBoxWindow;
我需要能够不断更改这个 window 的内容,但是我不能将 var 放在部分 class 中,如果我把它放在其他任何地方,它就不是全局的。如果我要使用:
ProjectName.MessageBoxWindow MessageBox_Window = System.Windows.Application.Current.Windows.Cast<Window>().FirstOrDefault(window => window is MessageBoxWindow) as MessageBoxWindow;
在部分 class 中,每当我尝试更改内容时,我都会得到 NullReferenceException.
有没有办法使此代码成为全局代码,以便可以从 window 中的任何地方访问它?
使用 static
class:
static class globalClass
{
public static string globalData { get; set; }
}
并设置它:
globalClass.globalData = "some value"
正如 Servy 所说,您不应该直接使用那个 window(并且从另一个线程而不是那个 window 的 UI 线程这样做是不可能的)。
考虑拥有一个包含您要共享的所有参数的 class。您的 MessageBoxWindow 负责根据这些参数自行绘制,而其他 windows 可以自由更改它们。
我正在使用一段代码来编辑另一个 window,例如位于内部的文本框:
var MessageBox_Window = System.Windows.Application.Current.Windows.Cast<Window>().FirstOrDefault(window => window is MessageBoxWindow) as MessageBoxWindow;
我需要能够不断更改这个 window 的内容,但是我不能将 var 放在部分 class 中,如果我把它放在其他任何地方,它就不是全局的。如果我要使用:
ProjectName.MessageBoxWindow MessageBox_Window = System.Windows.Application.Current.Windows.Cast<Window>().FirstOrDefault(window => window is MessageBoxWindow) as MessageBoxWindow;
在部分 class 中,每当我尝试更改内容时,我都会得到 NullReferenceException.
有没有办法使此代码成为全局代码,以便可以从 window 中的任何地方访问它?
使用 static
class:
static class globalClass
{
public static string globalData { get; set; }
}
并设置它:
globalClass.globalData = "some value"
正如 Servy 所说,您不应该直接使用那个 window(并且从另一个线程而不是那个 window 的 UI 线程这样做是不可能的)。
考虑拥有一个包含您要共享的所有参数的 class。您的 MessageBoxWindow 负责根据这些参数自行绘制,而其他 windows 可以自由更改它们。