À l'aide d'un statique jeu de données comme source de données

Dans mon application j'ai un DataSet qui contient les tables qui sont utilisés dans différentes formes, toutes plus mon application.
Pour être en mesure de maintenir la simultanéité entre les formes, et de ne pas avoir à obtenir des données de la base de données chaque fois que l'utilisateur ouvre un nouveau formulaire, je tiens mon jeu de données dans un champ statique dans le programme de la classe comme ceci:

static class Program
{
    public static CustomDataSet StockDataSet { get; private set; }

    [STAThread]
    static void Main()
    {
        StockDataSet = new Database.CustomDataSet();
        StockDataSet.InitRelations();
        StockDataSet.EnforceConstraints = false;
        StockDataSet.Categories.Fill();
        StockDataSet.Suppliers.Fill();
        StockDataSet.StockItems.Fill();
        StockDataSet.EnforceConstraints = true;

        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new MainWindow());
    }

De ce fait, il est assez facile à utiliser le jeu de données par programmation. De travail dans la conception-temps, cependant, provoque beaucoup de frustration. Par exemple; j'ai un formulaire avec un DataGridView lié à un BindingSource. Si je veux être en mesure de travailler avec les colonnes de la DataGridView dans la conception, je doit avoir un objet de mon DataSet personnalisé accessible à la BindingSource dans la InitializeComponent.

Toutes les solutions de contournement pour ce que je pense sont assez moches, hacks.
Comme à l'aide d'un objet factice dans Designer.cs de garder le design-temps heureux, et attribuer à l'objet statique du champ de la tenue de l'objet fictif. Et après réinitialisation de toutes les liaisons dans le constructeur. Cela doit être considéré comme très mauvaise pratique, non?

Donc ma question est: est-ce n'est-il pas plus élégant, ou, au moins, l'approche pratique de la ce?
Ou est-il suggéré de meilleures pratiques pour travailler avec des ensembles de données dans de multiples formes?

Modifier

Stock se réfère à la gestion de stock comme dans l'inventaire. Pas de lourd traitement est effectué sur les données, qui est conservé sur une base de données MySql-base de données sur un serveur local.

  • J'espère vraiment que vous n'en fais pas de filetage - pur chaos avec un statique dataset
  • Nope, pas de filetage. Heureusement
InformationsquelleAutor JonC | 2011-02-28