2010-08-25 17 views
1

我需要简单的方法在我的应用程序中保留和编辑一组字符串。我相信DataGridView有两个小窍门可以帮助我查看和编辑,并且我希望使用应用程序设置而不是数据库来存储数据(可能是DataSet作为设置类型)。我不能把所有这些放在一起。有没有办法?使用DataGridView进行本地设置

回答

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对象上直接更改,但是当用户是这么说的。在设置编辑器将添加型MyMapCollection的项目,叫说TheValues,并在代码中使用非常简单的:

myDataGridView.DataSource = Settings.Default.TheValues.Clone(); 

如果数据应被改回设置(用户点击OK时),然后相应地更改设置:

Settings.Default.TheValues = (MyMapCollection)myDataGridView.DataSource; 

使用数据表或数据集,而不是MyMapCollection也是可能的,但这种方法可以让我的代码,这是更甜蜜比数据集可能是其他地区使用TheValues。

0

如果您尝试编辑的值是纯键值对,则可以创建一个将这些值保存为属性的类,并将此类对象序列化为XML文件。您可以反序列化该类并将值分配给DataGridView。

您也可以创建自定义配置并将其与App.config/Web.config文件分开存储。这将与NHibernate或spring.Net配置文件在configsections项中存储的引用相似。

这里是一个链接如何创建自己的自定义配置。 MSDN link

+0

好的,这是一种方法,但它显然涉及大量额外的编码。另一方面,在“设置”页面中,我可以将一种应用程序设置更改为System.Data.DataSet,这使我认为可以将该设置以某种方式绑定到DataGridView,并使所有内容都可以使用很少的行的代码。我只需要这些行:-) – Dialecticus 2010-08-25 17:08:13