我想创建一个(非常轻量级)双向绑定数据存储区。必须通过 names 访问值。我在考虑使用2个数组:
public class MyBindingDatastore{
public string[] _names = new string[]{"Field1", "Field2", "Field3"}
public object[] _values = new object[]{ DateTime.Now, "MyValue", 1}
}
第一个数组用于存储字段名称(总是1行)。第二个数组(如果超过1个记录,也可以是2D)表示值矩阵。 使用GUI小部件(Resco detailview或任何支持双向数据绑定),我想指定:
MyControl.DataMember = "Field1";
MyControl.DataSource = new MyBindingDatastore();
数据绑定的结果应该从值数组中正确显示值。更改GUI窗口小部件中的值后,必须在数据存储区(值数组)中进行更改。
关于如何实现这一点的任何想法?或者,使用更臃肿的 DataTable 类来模仿数据表绑定是否更好(我相信DataTable对数组有很多开销)?
答案 0 :(得分:0)
如果您想使用DataBinding,您应该坚持使用DataTable。否则,无论如何都必须实现自己的数据绑定。如果您关心内存大小,请寻找一种方法来最小化一次加载到内存的数据量。