Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1158 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C#] ListView Resultat

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C#] ListView Resultat

n°1595234
Junt
Posté le 02-08-2007 à 22:01:17  profilanswer
 

Bonjour à tous,
 
J'ai un petit soucis avec une ListView.
Je récupère un certain nombre de résultat dans mon code qui est situé dans la form1
J'aimerais via une liste view situé dans ma Form4 pouvoir récupérer ses resultats.
Comment dois je déclarer mes variables pour qu'elles soient accessibles via toutes les Forms.
J'ai cette erreur:  
Erreur 1 Le nom 'critik_Name n'existe pas dans le contexte actuel C:\projects\Form4.cs  
 
D'avance merci
Cdlt
Junt


Message édité par Junt le 02-08-2007 à 22:01:29
mood
Publicité
Posté le 02-08-2007 à 22:01:17  profilanswer
 

n°1595235
Mackila
Posté le 02-08-2007 à 22:05:21  profilanswer
 

Mettre ta listview publique ?
Créer les méthodes qui vont bien dans ta form4 pour ajouter des résultats ?
Ya plein de manières de faire, hein...

n°1595370
ixemul
Nan mais sans blague ! ⚡
Posté le 03-08-2007 à 11:32:35  profilanswer
 

Le plus propre serait même de globaliser la source plutot que de partager le listview :/


---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
n°1595744
Junt
Posté le 03-08-2007 à 19:51:34  profilanswer
 

Merci pour vos conseils , je vais donc globaliser ma source.
A+
Junt

n°1600001
MagicBuzz
Posté le 16-08-2007 à 13:46:55  profilanswer
 

Tiens, ça m'intéresse...
 
Comment "globaliser" ?
 
Jusqu'à présent, le seul moyen que je connaisse pour utiliser un truc global, c'est d'avoir un Dictionnary<string, object> nommé "Context", que je me trimballe partout, mais c'est un peu très chiant comme truc, et si y'a moyen de faire des variables globales, ça m'intéresse carrément... On fait comment ?

n°1600015
ixemul
Nan mais sans blague ! ⚡
Posté le 16-08-2007 à 14:13:00  profilanswer
 

MagicBuzz a écrit :

Tiens, ça m'intéresse...
 
Comment "globaliser" ?
 
Jusqu'à présent, le seul moyen que je connaisse pour utiliser un truc global, c'est d'avoir un Dictionnary<string, object> nommé "Context", que je me trimballe partout, mais c'est un peu très chiant comme truc, et si y'a moyen de faire des variables globales, ça m'intéresse carrément... On fait comment ?


 
Le meilleur moyen c'est de bien détacher le contexte donnée du contexte d'affichage. Les exemples d'implémentation de MVC ne manque pas :)
 
Idéalement, si c'est possible et que le contexte s'y prete, c'est de passer par un singleton


---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
n°1600021
MagicBuzz
Posté le 16-08-2007 à 14:21:57  profilanswer
 

Rien compris :D
 
Concrètement, ça donne quoi ? Dans un langage non-objet ou semi-objet comme le C ou le C++, il suffit de déclarer une variable en dehors d'une class/fonction pour qu'elle soit visible de partout. Mais en C# ?

n°1600026
ixemul
Nan mais sans blague ! ⚡
Posté le 16-08-2007 à 14:30:39  profilanswer
 

MagicBuzz a écrit :

Rien compris :D
 
Concrètement, ça donne quoi ? Dans un langage non-objet ou semi-objet comme le C ou le C++, il suffit de déclarer une variable en dehors d'une class/fonction pour qu'elle soit visible de partout. Mais en C# ?


 
En C#, tu oublie le concept de variable déja :o
 
Ensuite, un petit tour par ici sera instructif ;) http://www.dofactory.com/Patterns/Patterns.aspx  
 
puis pour le MVC (Model/View/Control)
 
Model : Concretement, tes données
View  : La reperésentation de tes données (tes fenetres/User control/Pages web, etc)
Control : Comment tu geres tes données par rapport à tes vues
 
http://www.c-sharpcorner.com/Uploa [...] c5d1141e3f
 
Lorsque tu geres tes applis en respectant ces concept, tes données sont complémetement détachées de l'affichage, cela te permet de développer par exemple une implémentation Web et une implémentation client lourd sur la même couche de donnée (que l'on appelle courament couche Métier).
 


---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
n°1600037
MagicBuzz
Posté le 16-08-2007 à 14:44:27  profilanswer
 

Euh...
 
Ouais, nan mais ça je suis d'accord.
 
Mais mettons un exemple tout bête : J'ai un fichier INI dans lequel je peux décider de quelle couleur afficher les background de mes Forms.
 
A part me faire chier à passer cette variable systématiquement au constructeur de chaque Form créée (ou via une méthode, propriété, ou ce que tu veux), je préfèrerais être capable par exemple de taper un truc genre :
 
this.BackgroundColor = Global.BackgroundColor;
 
Et que "MyParams" soit accessible de n'importe où (du moins, de n'importe quelle Form) sans que je doive me faire chier à le trimballer à chaque fois.
 
C'est à cause de ça que j'utilise maintenant un Dictionary pour passer mes "variables globales", parcequ'au moins ça m'évite de devoir me repalucher 20000 lignes de code pour ajouer une variable en paramètre dans un constructeur quand je décide de rajouter un truc.
 
En fait, si tu fais de l'ASP.NET, ce que je veux, c'est avoir un objet qui ait un scope gloabl comme les collections Session, Application ou Request.
On peut les appeler de n'importe où et c'est bien pratique.

Message cité 1 fois
Message édité par MagicBuzz le 16-08-2007 à 14:46:36
n°1600062
ixemul
Nan mais sans blague ! ⚡
Posté le 16-08-2007 à 15:08:42  profilanswer
 

MagicBuzz a écrit :

Euh...
 
Ouais, nan mais ça je suis d'accord.
 
Mais mettons un exemple tout bête : J'ai un fichier INI dans lequel je peux décider de quelle couleur afficher les background de mes Forms.
 
A part me faire chier à passer cette variable systématiquement au constructeur de chaque Form créée (ou via une méthode, propriété, ou ce que tu veux), je préfèrerais être capable par exemple de taper un truc genre :
 
this.BackgroundColor = Global.BackgroundColor;
 
Et que "MyParams" soit accessible de n'importe où (du moins, de n'importe quelle Form) sans que je doive me faire chier à le trimballer à chaque fois.
 
C'est à cause de ça que j'utilise maintenant un Dictionary pour passer mes "variables globales", parcequ'au moins ça m'évite de devoir me repalucher 20000 lignes de code pour ajouer une variable en paramètre dans un constructeur quand je décide de rajouter un truc.
 
En fait, si tu fais de l'ASP.NET, ce que je veux, c'est avoir un objet qui ait un scope gloabl comme les collections Session, Application ou Request.
On peut les appeler de n'importe où et c'est bien pratique.


 
Tes problèmes sont différent :
 
1ere chose : L'héritage, tu crée une classe implémentant ta gestion de backround, elle même héritant de System.Windows.Forms.Form puis tes tu dérives tes classes de fenetre de ta nouvelle classe.
 
2eme : concernant la création de classe ayant le même comportement que la classe session par exemple. La classe session, justement, est une propriété publique( ou protected) de la classe Page dont dérive ta page Aspx, cette propriété, est du type  HttpSessionState, dont l'implémentation pourrait se faire via une classe singleton Static
 
Interet du singleton Static: le constructeur n'est appelé qu'a la premiere utilisation de l'objet, c'est à ce moment que tu crée ton objet (ex: lecture du fichier ini, etc...). Ensuite, partout dans ton application, lorsque tu fais référence à ton objet, il est utilisé tel que tu l'a crée à l'initialisation.
 
Exemple Minimaliste d'implémentation :
 

Code :
  1. public  class TestSingleton
  2. {
  3.  private static string m_variableTest;
  4.  public static string ProprieteBidon
  5.  {
  6.   get{return m_variableTest;}
  7.  }
  8.  /// <summary>
  9.  /// Constructeur static
  10.  /// </summary>
  11.  static TestSingleton()
  12.  {
  13.   m_variableTest = "Inutile mais suffisant";
  14.  }
  15. }


 
Avec ceci, lorsque tu va appeler la propriété "ProprieteBidon" de la classe, le constructeur static sera automatiquement appellé à la premiere execution, ensuite, partout ou tu appelera
 
TestSingleton.ProprieteBidon tu utilisera l'instance initialisée en static sans repasser par le constructeur
 
Attention, ici ce n'est pas un véritable singleton, mais cela te donne une idée du concept. L'idéal etant de réaliser une véritable implémentation de singleton (telle que décrite dans mon premier lien) avec ce concept de constructeur static.


Message édité par ixemul le 16-08-2007 à 15:09:16

---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
mood
Publicité
Posté le 16-08-2007 à 15:08:42  profilanswer
 

n°1600069
MagicBuzz
Posté le 16-08-2007 à 15:16:50  profilanswer
 

Tu veux dire que si j'ai ça :
 

Code :
  1. public class Test1
  2. {
  3.    public Test1()
  4.    {
  5.        MessageBox.Show(TestSingleton.ProprieteBidon);
  6.    }
  7. }
  8.  
  9. public class Test2
  10. {
  11.    public Test2()
  12.    {
  13.        MessageBox.Show(TestSingleton.ProprieteBidon);
  14.    }
  15. }
  16.  
  17. public class Form1 : Form // Ma form
  18. {
  19.    void Test()
  20.    {
  21.        Test1 t1 = new Test1();
  22.        Test2 t2 = new Test2();
  23.    }
  24. }


 
Ca ne va appeler qu'une fois le constructeur de TestSingleton ???
 
Si c'est ça, c'est exactement ce qu'il me faut !!!

Message cité 1 fois
Message édité par MagicBuzz le 16-08-2007 à 15:17:24
n°1600072
ixemul
Nan mais sans blague ! ⚡
Posté le 16-08-2007 à 15:19:59  profilanswer
 

MagicBuzz a écrit :

Tu veux dire que si j'ai ça :
 

Code :
  1. public class Test1
  2. {
  3.    public Test1()
  4.    {
  5.        MessageBox.Show(TestSingleton.ProprieteBidon);
  6.    }
  7. }
  8.  
  9. public class Test2
  10. {
  11.    public Test2()
  12.    {
  13.        MessageBox.Show(TestSingleton.ProprieteBidon);
  14.    }
  15. }
  16.  
  17. public class Form1 : Form // Ma form
  18. {
  19.    void Test()
  20.    {
  21.        Test1 t1 = new Test1();
  22.        Test2 t2 = new Test2();
  23.    }
  24. }


 
Ca ne va appeler qu'une fois le constructeur de TestSingleton ???
 
Si c'est ça, c'est exactement ce qu'il me faut !!!


 
 
T'as plus qu'a compiler et tester [:cerveau ddr555]


---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
n°1600082
MagicBuzz
Posté le 16-08-2007 à 15:34:33  profilanswer
 

Et en plus ça marche !!! :love:
 
Merci infiniment, là franchement, je sais plus quoi dire, je t'aime !
 

Code :
  1. class Context
  2.    {
  3.        private static Dictionary<string, object> m_list;
  4.  
  5.        public static Dictionary<string, object> Parameters
  6.        {
  7.            get
  8.            {
  9.                return m_list;
  10.            }
  11.        }
  12.  
  13.        static Context()
  14.        {
  15.            MessageBox.Show("context constructor" );
  16.            m_list = new Dictionary<string, object>();
  17.            m_list.Add("p1", "test" );
  18.            m_list.Add("p2", 42);
  19.        }
  20.    }


 
=> D'où que j'appelle mes paramètres : 1/ le constructeur ne tourne effectivement qu'une fois 2/ ils sont disponibles
 
:bounce:

Message cité 1 fois
Message édité par MagicBuzz le 16-08-2007 à 15:35:41
n°1600083
ixemul
Nan mais sans blague ! ⚡
Posté le 16-08-2007 à 15:36:21  profilanswer
 

MagicBuzz a écrit :

Et en plus ça marche !!! :love:
 
Merci infiniment, là franchement, je sais plus quoi dire, je t'aime !


 
c'est la "magie" (en fait ya rien de magique, c'est de la logique :o) des concepts objets, les design patterns et le C# qu'il faut remercier :D


---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C#] ListView Resultat

 

Sujets relatifs
Afficher le résultat d’une requête une seule fois.Résultat de projet par curseur.
Référencement, obtenir ce résultat dans google?Additioner le résultat d'un LENGHT
[Java]Problème de recharge d'une JTable avec le résultat d'une requête[C#]Accéder à ma listview depuis un thread
[Resolu] Ordre du résultat en fonction d'une clause in.recuperation resultat dans variable
C# : listView customiséeComment envoyer le résultat vers un fichier et garder à l'écran ?
Plus de sujets relatifs à : [C#] ListView Resultat


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR