none
Lier des texbox aux propriétés d'une classe collection (list<person>) par un BindingNavigator RRS feed

  • Question

  • Salut tout le monde,
    Je suis débutant en programmation C# et j'utilise Visual Studio 2008.
    Je suis en train de developper une application présentant une série de texboxes (Work ID,First Name, Last Name, Birth Day, Comment) et ayant une classe Person dont les propriétés : Work_ID, First_Name, Last_Name, Birth_Name, Comment et une classe List<Person>. Je cherche alors à afficher List<Person> sur les texboxes avec possibilité de naviguer sur la liste de Person par un BindingNavigator. J'ai vu un exemple semblable sur MSDN mais avec arraylist par contre j'ai une classe Person et une classe List<Person> que je dois lier au BindingNavigator.  Je ne sais comment m'y prendre. J'ai besoin d'aide.
    lundi 18 mai 2009 10:38

Réponses

  • Je pense que tu as déja développé ta classe Person. Il faudrait aussi que tu disposes d'une classe spécifique qui hérite de List<Person>: appelons-la Persons et pour l'instant elle ne contient rien mais à l'avenir tu pourras y mettre du code d'initialisation, etc. Etape suivante: compiler ! ça a l'air de rien mais c'est important (voir plus loin).

    Ouvre la fenêtre "Data sources" (depuis menu Data) et ajoute une nouvelle Data Source. Choisis "Objet" comme type puis ouvre l'assembly qui contient ta classe Persons. C'est à ce niveau qu'il est important d'avoir compiler sinon, tu ne vois rien ! Tu devrais voir apparaitre ta Data Source Persons en mode grid dans la fenêtre "Data sources". Si tu cliques dessus tu peux la passer en mode détail.

    Une fois que c'est fait, tu drag&drop cette data source en mode détail sur une Form: tous les champs de ta classe Person vont venir se placer sur le formulaire. En même temps, tu dois voir apparaitre le BindingNavigator et une BindingSource ...

    Il ne reste plus qu'à initialiser le BindingSource. Par exemple:
    private void Form1_Load(object sender, EventArgs e)
    {
                personsBindingSource.DataSource = new Persons();
    }

    Et voila ...

    Xavier
    • Marqué comme réponse pbompere samedi 30 mai 2009 03:31
    mardi 19 mai 2009 12:32

Toutes les réponses

  • Je pense que tu as déja développé ta classe Person. Il faudrait aussi que tu disposes d'une classe spécifique qui hérite de List<Person>: appelons-la Persons et pour l'instant elle ne contient rien mais à l'avenir tu pourras y mettre du code d'initialisation, etc. Etape suivante: compiler ! ça a l'air de rien mais c'est important (voir plus loin).

    Ouvre la fenêtre "Data sources" (depuis menu Data) et ajoute une nouvelle Data Source. Choisis "Objet" comme type puis ouvre l'assembly qui contient ta classe Persons. C'est à ce niveau qu'il est important d'avoir compiler sinon, tu ne vois rien ! Tu devrais voir apparaitre ta Data Source Persons en mode grid dans la fenêtre "Data sources". Si tu cliques dessus tu peux la passer en mode détail.

    Une fois que c'est fait, tu drag&drop cette data source en mode détail sur une Form: tous les champs de ta classe Person vont venir se placer sur le formulaire. En même temps, tu dois voir apparaitre le BindingNavigator et une BindingSource ...

    Il ne reste plus qu'à initialiser le BindingSource. Par exemple:
    private void Form1_Load(object sender, EventArgs e)
    {
                personsBindingSource.DataSource = new Persons();
    }

    Et voila ...

    Xavier
    • Marqué comme réponse pbompere samedi 30 mai 2009 03:31
    mardi 19 mai 2009 12:32
  • xlg(Xavier),  Merci infiniment pour ta réponse. J'ai suivi à la lettre tout ce que tu m'as dit et ça a bien marché.
    Je voudrais savoir si tu peux savoir comment le faire en code.

    samedi 30 mai 2009 03:37