UserControl:保存值/偏好的最佳方法

本文关键字:最佳 方法 保存 UserControl | 更新日期: 2023-09-27 18:10:52

我创建了一个UserControl,它基本上是一个面板,用于设置用户偏好和值(例如年龄,身高,男性/女性,…,文本框,单选按钮,复选框,…),它用于主要的WinForm应用程序。我正在寻找保存用户选择的"最佳"或最简单的方法,以便在下一次应用程序加载时保留它们。

如果控件在主WinForm上,我会使用属性。设置方法(但有很多,我不想这样做)。我还考虑过创建保存/加载方法并使用XML序列化,但这将需要创建和更新大约40个属性。我可以用XML方法,但我想我应该问你的好朋友,看看是否有一个更简单的方法,我不知道。

谢谢!

UserControl:保存值/偏好的最佳方法

我认为将序列化和数据绑定结合起来是可行的方法,只需创建一个类,其中包含要保存的所有设置,将它们绑定到控件,在退出表单时序列化并保存它们并在加载表单时加载它们:

_settings = new Settings()
{
    Name = "Name",
    Name1 = "Name1",
    Name2 = "Name2"
};
textBox1.DataBindings.Add("Text", _settings, "Name");
textBox2.DataBindings.Add("Text", _settings, "Name1");
textBox3.DataBindings.Add("Text", _settings, "Name2");
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
   XmlSerializer ser = new XmlSerializer(typeof(Settings));
   using (Stream stream = File.OpenWrite("settings.xml"))
   {
       ser.Serialize(stream, _settings);
   }
}