如何在TextBox中保存用户推算值? (WPF XAML)所以在我的xaml窗口中我有一个TextBox。用户sturts我的应用程序输入一些值,然后按一个按钮或提示回车。他关闭了一个应用程序再次打开它。如何将他的输入保存在WPF中的TextBox中?
答案 0 :(得分:19)
您可以使用内置的.net设置。
在visual studio中,右键单击您的项目并选择Add new item。从对话框中选择“设置文件”,并为其命名为“MySettings”。 Visual Studio将创建一些文件,包括MySettings
类和一些静态方法,以便您访问设置。
如果您打开此文件,您将获得一个很好的网格ui,允许您输入一些设置,设置其类型(在本例中为String
)并设置默认值。它还允许您指定它们是应用程序还是用户设置。
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
命名空间导入Window
或UserControl
并使用标准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()
。