我正在使用一段代码,允许我编辑另一个窗口,例如位于内部的文本框:
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.
有没有办法让这个代码全局化,以便可以从窗口内的任何地方访问它?
答案 0 :(得分:1)
正如Servy所说,你不应该直接使用该窗口(并且从另一个线程执行此操作,而不是该窗口的UI线程)。
考虑拥有一个包含您要共享的所有参数的类。您的MessageBoxWindow负责根据这些参数绘制自己,而其他窗口可以自由更改它们。
答案 1 :(得分:0)
使用static
类:
static class globalClass
{
public static string globalData { get; set; }
}
并设置它:
globalClass.globalData = "some value"