簡體   English   中英

會話或全局變量 c# wpf

[英]Session or Global Variables c# wpf

美好的一天,我有一個應用程序,我正忙着為大學做。 用戶在 MainWindow.xaml 上輸入數據,我想讓他們在此窗口中輸入的數據可以在整個應用程序中訪問(姓名、姓氏等。我知道我可以將數據解析到每個單獨的窗口中,但我總共有 13 個窗口.

有沒有辦法在 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();

您始終可以將變量標記為 public static,以便可以從任何地方訪問它們。 您可以簡單地創建一個包含所有“全局”數據的靜態類。

另一種選擇是將MainWindow類的屬性MainWindow靜態,但這會導致將信息聚集到實際上是接口而不是存儲的類上。

可能最好的做法如下:

  • 創建一個能夠保存數據的類,讓我們將這個類稱為Person其中包含描述該人所需的所有變量(姓名、姓名等)
  • 創建一個具有Person類型的公共屬性的靜態類
  • 從您的MainWindow將您的值寫入屬性

好了,您有了一個靜態(全局)可訪問的數據集合實例,該實例可以擴展並具有適當的封裝和命名。

補充一點:C# 中沒有“會話”或“全局”變量之類的東西。 您可以在全局空間中創建類,但不能在變量中創建類,並且“會話”一詞讓我想起了 WPF 顯然不是的 Web 服務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM