使用全局变量的WPF应用程序
我在c#中创建了一个带有3个不同窗口的WPF应用程序, Home.xaml, Name.xaml, Config.xam
l。 我想在Home.xaml.cs
中声明一个我可以在其他两种forms中使用的变量。 我试过做public string wt = "";
但那没用。
我怎样才能使这三种forms都可用?
正确的方法,特别是如果你想转移到XBAPP,是将它存储在
Application.Current.Properties
这是一个Dictionary对象。
为了避免在Windows和用户控件之间传递值,或者创建静态类来复制WPF中的现有function,您可以使用:
- 设置:
App.Current.Properties["NameOfProperty"] = 5;
- 获取:
string myProperty = App.Current.Properties["NameOfProperty"];
这是上面提到的,但语法有点偏。
这在您的应用程序中提供了全局变量,可以从其中运行的任何代码访问。
您可以使用静态属性:
public static class ConfigClass() { public static int MyProperty { get; set; } }
编辑:
这里的想法是创建一个类,您可以保存所有“常见数据”,通常是配置。 当然,您可以使用任何类,但建议您使用静态类。 您可以像这样访问此属性:
Console.Write(ConfigClass.MyProperty)
你可以在这里做两件不同的事情(除此之外;这些只是我们首先想到的两件事)。
-
您可以在Home.xaml.cs上将变量设置为static
public static string Foo =“”;
-
您可以将变量传递给所有三种forms。
我会自己选择#2,如有必要,创建一个包含我需要的数据的单独类。 然后每个类都可以访问数据。
App.xaml中:
Hello, Application world!
代码背后
Application.Current.FindResource("strApp").ToString()