如何在TextBox中保存用户估算的值? (WPF,XAML)

时间:2010-04-24 12:53:40

标签: c# .net wpf xaml textbox

如何在TextBox中保存用户推算值? (WPF XAML)所以在我的xaml窗口中我有一个TextBox。用户sturts我的应用程序输入一些值,然后按一个按钮或提示回车。他关闭了一个应用程序再次打开它。如何将他的输入保存在WPF中的TextBox中?

2 个答案:

答案 0 :(得分:19)

您可以使用内置的.net设置。

在visual studio中,右键单击您的项目并选择Add new item。从对话框中选择“设置文件”,并为其命名为“MySettings”。 Visual Studio将创建一些文件,包括MySettings类和一些静态方法,以便您访问设置。

如果您打开此文件,您将获得一个很好的网格ui,允许您输入一些设置,设置其类型(在本例中为String)并设置默认值。它还允许您指定它们是应用程序还是用户设置。

  • 应用设置:应用启动后无法修改。只能通过编辑xml .config文件来配置。对于运行该应用程序的每个用户都是一样的。
  • 用户设置:可以在应用程序运行时进行修改和保存。将存储在用户documents and settings\username\local settings文件夹中。每个用户都可以有所不同。

对于您所描述的内容,请为范围选择“用户”。

现在,要访问代码中的值:

// Load the value into the text box.
txtBox1.text = MySettings.Default.SomeSetting;

并保存更改:

// Update the value.
MySettings.Default.SomeSetting = txtBox1.text;

// Save the config file.
MySettings.Default.Save();

在MSDN here上有关于所有这些的更多信息,有关ApplicationSettingsBase class here的更多信息。

(显然,如果您使用mvvm或任何其他UI模式,您可以调整此代码,以便在适当时将设置值加载到模型/视图模型中,而不是直接加载到文本框中)

答案 1 :(得分:0)

除了Simon所说的,WPF还允许您将UI控件直接绑定到应用程序设置。这样,您不必手动加载它们。只需将项目的Properties命名空间导入WindowUserControl并使用标准Binding语法即可。在这里,我在项目的设置ServerURL中定义了一个用户级设置。这是我绑定的方式。

<Window x:Class="YourProjectNamespace.SomeWindow" xmlns:props="clr-namespace:YourProjectNamespace.Properties">
  <TextBox Text="{Binding Source={x:Static props:Settings.Default}, Path=ServerURL}" />
</Window>

请记住,有时仍需要调用Settings.Default.Save(),可能是在Window关闭或适合您的情况下调用。双向绑定会自动更新源(在本例中为Settings对象),但不会将其写入磁盘。为此,您必须致电Save()