使用全局变量的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) 

你可以在这里做两件不同的事情(除此之外;这些只是我们首先想到的两件事)。

  1. 您可以在Home.xaml.cs上将变量设置为static

    public static string Foo =“”;

  2. 您可以将变量传递给所有三种forms。

我会自己选择#2,如有必要,创建一个包含我需要的数据的单独类。 然后每个类都可以访问数据。

App.xaml中:

   Hello, Application world!  

代码背后

 Application.Current.FindResource("strApp").ToString()