【问题标题】:How to save user inputed value in TextBox? (WPF, XAML)如何在 TextBox 中保存用户输入值? (WPF、XAML)
【发布时间】:2010-04-24 12:53:39
【问题描述】:

如何将用户输入的值保存在文本框中? (WPF XAML) 所以在我的 xaml 窗口中我有一个文本框。用户启动我的应用程序,在其中输入一些值并按下按钮或按 Enter。他关闭应用程序,再次打开它。如何将他的输入保存在 WPF 中的那个 TextBox 中?

【问题讨论】:

    标签: c# .net wpf xaml textbox


    【解决方案1】:

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

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

    如果你打开这个文件,你会得到一个漂亮的网格用户界面,允许你输入一些设置,设置它们的类型(在本例中为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 模式,您可以调整此代码以在适当时将设置值加载到您的模型/视图模型中,而不是直接加载到文本框中)

    【讨论】:

    • 但是应用重启后不会保存数据...?
    • @PaulMartinez 您需要在应用关闭时手动调用 MySettings.Default.Save() 以保存更改。
    【解决方案2】:

    除了 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(),可能是在窗口关闭或任何适合您情况的情况下。双向绑定会自动更新源(在本例中为Settings 对象),但不会将其写入磁盘。为此,您必须致电Save()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-08
      • 2012-04-25
      • 1970-01-01
      • 2010-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多