我需要简单的方法来保存和编辑应用程序中的一组字符串对。我相信带有两个culmns的DataGridView可以帮助我查看和编辑,我希望使用应用程序设置而不是数据库来存储数据(可能是DataSet作为设置类型)。我不能把所有这些放在一起。有办法吗?
答案 0 :(得分:2)
我是这样做的。类MyMap保存值对。它们必须是属性,因为DatGridView不适用于字段。 MyMapCollection包含MyMaps的集合,作为BindingList(允许在DataGridView中添加行)。需要此类才能使Visual Studio设置编辑器满意,无法使其与纯BindingList一起使用。所以:
public class MyMap {
public String FirstField { get; set; }
public String SecondField { get; set; }
}
public class MyMapCollection : BindingList<MyMap>
{
public MyMapCollection Clone()
{
MyMapCollection result = new MyMapCollection();
foreach (MyMap map in this)
result.Add(new MyMap() {
FirstField = map.FirstField, SecondField = map.SecondField });
return result;
}
}
功能克隆会创建对象的深层副本,因此不会直接在Settings.Default中的对象上更改数据,但是当用户这样说时。在设置编辑器中,您将添加一个名为TheValues的MyMapCollection类型的项目,并在代码中使用它非常简单:
myDataGridView.DataSource = Settings.Default.TheValues.Clone();
如果数据应更改回设置(当用户单击“确定”时),则相应地更改设置:
Settings.Default.TheValues = (MyMapCollection)myDataGridView.DataSource;
使用DataTable或DataSet代替MyMapCollection也是可能的,但是这个解决方案允许我在代码的其余部分中使用TheValues,它甚至比DataSet更甜。
答案 1 :(得分:0)
如果您尝试编辑的值是普通键值对,则可以创建一个将这些值保存为属性的类,并将此类对象序列化为XML文件。您可以反序列化类并将值分配给DataGridView。
您还可以创建自定义配置并将其与App.config / Web.config文件分开存储。这类似于NHibernate或spring.Net配置文件的存储,并在configsections键中引用它们。
以下是如何创建自己的自定义配置的链接。 MSDN link