美好的一天,我有一個我忙於爲大學做的應用。用戶在MainWindow.xaml上輸入數據,我想讓他們在這個窗口中輸入的數據可以在整個應用程序(名稱,姓氏等)中訪問。我知道我可以將數據解析到每個窗口中,但我總共有13個Windows 。會話或全局變量c#wpf
有沒有一種方式,我可以在WPF全局或會話變量,讓我在任何地方訪問這些數據。
我已經看了看周圍的答案,但使用類等似乎是個不錯的方法去我似乎找不到解決方案,將工作。
在此先感謝。
美好的一天,我有一個我忙於爲大學做的應用。用戶在MainWindow.xaml上輸入數據,我想讓他們在這個窗口中輸入的數據可以在整個應用程序(名稱,姓氏等)中訪問。我知道我可以將數據解析到每個窗口中,但我總共有13個Windows 。會話或全局變量c#wpf
有沒有一種方式,我可以在WPF全局或會話變量,讓我在任何地方訪問這些數據。
我已經看了看周圍的答案,但使用類等似乎是個不錯的方法去我似乎找不到解決方案,將工作。
在此先感謝。
Y你總是可以將你的變量標記爲公共靜態的,所以他們可以從任何地方訪問。您可以簡單地創建一個靜態類來保存所有「全局」數據。
另一種選擇是使MainWindow
類的屬性爲靜態,但這會導致將信息集羣到實際上是接口的類,而不是存儲。
也許是最好的辦法是:
Person
與描述的人所需要的所有變量(名稱,surename,等)Person
MainWindow
寫你的價值觀進入房地產你走了,你有一個靜態(全局)可訪問的數據集合實例,可以擴展並具有適當的封裝和命名。
需要添加的內容: C#中沒有「Session」或「Global」變量。您可以在全局空間中創建類,但不能創建變量,而「會話」一詞讓我想起了一個Web服務,而WPF顯然不是。
有沒有一種方法可以在WPF中創建一個全局或會話變量,這將允許我在任何地方訪問該數據。
創建靜態屬性的類:
public class ApplicationContext
{
public static string Name { get; set; }
public static string Surname { get; set; }
}
您可以從任何其他類別的應用程序,然後訪問這些屬性:
//set:
ApplicationContext.Name = "name...";
//get:
string name = ApplicationContext.Name;
您也可以使用Application.Current.Properties
集合,如果你不想因爲某種原因創建自己的課程:
//set;
Application.Current.Properties["Name"] = "name";
//get:
string name = Application.Current.Properties["Name"].ToString();
謝謝,我會放下一點。 –
請僅用必要的代碼創建一個[最小,完整和可驗證的示例](https://stackoverflow.com/help/mcve),否則很難回答。這裏的提示[如何提問](https://stackoverflow.com/help/how-to-ask)。 – Sach
[多個視圖模型(WPF MVVM)之間狀態共享的具體示例](https:// stackoverflow。com/questions/4599802 /具體實例-multi-viewmodels-wpf-mvvm中的state-sharing-sharing- – Stijn
十三個窗口太多了。如果你的教練希望你這樣做,你應該照他所說的去做,但要記住他非常有可能犯了瘋子。不要坐在前排,以防他咬住。 –