我在c#中用3個不同的窗口創建了一個WPF應用程序,其中有Home.xaml, Name.xaml, Config.xam
l。我想在Home.xaml.cs
中聲明一個變量,我可以在其他形式中使用它。我試着做public string wt = "";
,但沒有奏效。使用全局變量的WPF應用程序
如何讓所有三種形式都可以使用?
我在c#中用3個不同的窗口創建了一個WPF應用程序,其中有Home.xaml, Name.xaml, Config.xam
l。我想在Home.xaml.cs
中聲明一個變量,我可以在其他形式中使用它。我試着做public string wt = "";
,但沒有奏效。使用全局變量的WPF應用程序
如何讓所有三種形式都可以使用?
您可以使用一個靜態屬性:
public static class ConfigClass()
{
public static int MyProperty { get; set; }
}
編輯:
這裏的想法是創建一個你認爲所有的「通用數據」一類,通常配置。當然,你可以使用任何類,但建議你使用靜態類。 你可以像這樣訪問這個屬性:
Console.Write(ConfigClass.MyProperty)
有兩種不同的東西,你可以在這裏做(除其他外,這些只是浮現在腦海中第一個兩個)。
您可以使靜態變量上Home.xaml.cs
公共靜態字符串美孚= 「」;
您可以將變量傳遞給所有三種形式。
我會去與#2,我自己,如果有必要創建一個包含我所需要的數據單獨的類。然後每個班級都可以訪問數據。
但我想給家中的變量添加一個值,並在config中使用該值。如果我用所有的形式聲明價值被清除。我如何聲明它,以便我可以以三種形式連續使用它。 – Jake 2009-07-21 20:19:25
正確的方法,特別是如果你想要移動到XBAPP,是將其存儲在
Application.Current.Properties
這是一個字典對象。
屬性不是作爲Application.Current的成員提出的,有沒有什麼特殊的事情可以訪問它? 編輯:它剛剛發生在我身上,這可能是因爲我正在製作Windows Phone應用程序,所以我可能會有稍微不同的庫。 – 2011-03-21 21:34:08
@dr monk:Win Phone(7)表示SilverLight,這個答案是關於WPF的。 – 2011-03-21 22:18:23
爲了避免以繞過窗口和用戶控件,或創建一個靜態類之間的值複製中WPF現有的功能,你可以使用:
App.Current.Properties["NameOfProperty"] = 5;
string myProperty = App.Current.Properties["NameOfProperty"];
這是上面提到的,但語法有點不合適。
這提供了應用程序中的全局變量,可以從任何運行在其中的代碼訪問。
的App.xaml:
<Application x:Class="WpfTutorialSamples.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
StartupUri="WPF application/ResourcesFromCodeBehindSample.xaml">
<Application.Resources>
<sys:String x:Key="strApp">Hello, Application world!</sys:String>
</Application.Resources>
代碼背後
Application.Current.FindResource("strApp").ToString()
我不知道我的理解......你能解釋一下吧。謝謝。 – Jake 2009-07-21 20:10:09