2010-08-23 1 views
0

Je voudrais créer un magasin de données à liaison bidirectionnelle (très léger). Les valeurs doivent être accessibles via noms. Je pensais à l'aide de 2 tableaux:Type de tableau de liaison de tableau de données dans cf.net

public class MyBindingDatastore{ 
    public string[] _names = new string[]{"Field1", "Field2", "Field3"} 
    public object[] _values = new object[]{ DateTime.Now, "MyValue", 1} 
} 

Premier tableau est utilisé pour stocker les noms de champs (toujours 1 ligne). Le deuxième tableau (peut également être 2D si plus de 1 enregistrement) représente une matrice de valeurs. Utilisation du GUI widget (Resco detailview ou tout support que 2 voies de liaison de données), je voudrais préciser:

MyControl.DataMember = "Field1"; 
MyControl.DataSource = new MyBindingDatastore(); 

Résultat de la liaison de données doit être correctement valeur affichée à partir du tableau de valeurs. Une fois qu'une valeur dans le widget GUI est modifiée, une modification doit également être effectuée dans un magasin de données (tableau de valeurs).

Une idée sur la façon de mettre en œuvre cela? Ou, est-il préférable d'utiliser une classe DataTable 0TB pour imiter la liaison datatable (je crois que DataTable a beaucoup de surcharge par rapport au tableau)?

Répondre

0

Si vous souhaitez utiliser DataBinding, vous devriez probablement vous en tenir au DataTable. Sinon, vous devrez quand même implémenter votre propre liaison de données. Si la taille de la mémoire vous préoccupe, recherchez des moyens de minimiser la quantité de données chargées en mémoire à la fois.

+0

Je n'aurai qu'une seule ligne dans chaque banque de données. Mais il y aura environ 100 datastores. – FrenkR

+0

J'ai utilisé DataTable avec 1 ligne. Bien sûr, je voudrais avoir plus de composants légers, mais le datable usin est le moyen le plus facile à faire maintenant. – FrenkR