C# 如何加载上次输入值的WPF窗口?

C# 如何加载上次输入值的WPF窗口?,c#,wpf,wpf-controls,C#,Wpf,Wpf Controls,我有两个WPF窗口。两个窗口都有文本框和组合框。在Window1中输入数据时,用户按下“下一步”按钮,Window2被加载。Window2有一个“后退”按钮,当用户想要更改某些值时,该按钮将重新加载Window1。由于是同一个会话,我希望在按下Window2中的“后退”按钮时显示window1中最后输入的值。我应该如何在C#或XAML中执行此操作?您必须在Window1中获取一个属性,如 public string ChangeValue { get; set; } 当您按back butt

我有两个WPF窗口。两个窗口都有文本框和组合框。在Window1中输入数据时,用户按下“下一步”按钮,Window2被加载。Window2有一个“后退”按钮,当用户想要更改某些值时,该按钮将重新加载Window1。由于是同一个会话,我希望在按下Window2中的“后退”按钮时显示window1中最后输入的值。我应该如何在C#或XAML中执行此操作?

您必须在Window1中获取一个属性,如

 public string ChangeValue { get; set; }
当您按back buttion时,可以使用window 1的实例设置属性值

instanceofWindow1.ChangeValue="Value";

每个窗口都应该有自己的ViewModel。这些包含您在窗口中键入的值。如果单击“下一步”(并销毁第一个窗口),则应实现某种保存方法(单击“下一步”时调用的ICommand),将ViewModel的当前状态保存到模型类(或数据库或文本文件…)中。单击“上一步”时,必须重新加载模型,将其连接到ViewModel并显示Window1

如果您不熟悉WPF,可能来自另一个答案的链接可以帮助您开始:

此外,您还应了解以下主题:

  • MVVM
  • ICommands
  • 数据绑定

经验法则:代码隐藏文件不应包含任何内容。这一切都是通过数据绑定完成的。

如果我可以问的话,为什么要进行向下投票?如何创建ViewModel?什么是模型类?下面是一个关于MVVM模式的示例。在此之后,您应该继续阅读[this][。抱歉,解释WPF背后的整个概念远远不够。简而言之:模型代表您的数据(例如,数据库中的用户)VIEW模型从视图的模型中准备数据,因此视图可以在数据改变时使用数据绑定来自动更新视图。也许您还应该考虑阅读关于这个主题的一本书。我有“C中的Pro WPF 4.5:.NET 4.5中的Windows演示基金会”的前身。这很好。MVVM对于这个特定的场景来说可能有点过头了。OP似乎是在从Windows窗体背景学习WPF。一些更简单的方法,比如在更改Windows时保存到文本文件,或者在App.xaml中创建全局变量/资源,会更容易并且满足这一要求(当你的应用程序越来越大时,不一定是最佳实践)此外,“你的代码隐藏文件应该不包含任何内容”是一个神话——为了实用性,有必要知道什么时候打破这种模式。