美好的一天,我有一个我忙于为大学做的应用。用户在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
十三个窗口太多了。如果你的教练希望你这样做,你应该照他所说的去做,但要记住他非常有可能犯了疯子。不要坐在前排,以防他咬住。 –