IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[C#] Passer une référence à une fonction


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2003
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 22
    Par défaut [C#] Passer une référence à une fonction
    Bonjour,

    Voilà, je ne sais pas si c'est possible mais j'ai une fonction F1 qui pourrait être appelée plusieurs fois par une autre fonction F2, néanmoins le traitement fait par F1 dépend d'un champ qui se trouve dans F2. Bref, je ne suis pas clair, alors voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
            private void LoadLineChartData(string Title, int i)
            {
                mcChart.Series.Clear();
    
                var ls = new LineSeries();
                ls.IndependentValuePath = "Key";
                ls.DependentValuePath = "Value";
                ls.Title = Title;
                //a.DataPointStyle = adps;
                var list = new List<KeyValuePair<DateTime, double>>();
                foreach (Analyse analyse in _AnalyseCollection)
                {
    
                    list.Add(new KeyValuePair<DateTime, double>(analyse.Date, double.Parse(analyse.KH)));
                }
                ls.ItemsSource = list;
                mcChart.Series.Add(ls);
            }
    
            private void LoadGraph_Click(object sender, RoutedEventArgs e)
            {
                int i = 0;
                if (chckBxKH.IsChecked == true)
                {
                    LoadLineChartData("KH", i);
                    i++;
                }
                if (chckBxPH.IsChecked == true)
                {
                    LoadLineChartData("PH", i);
                    i++;
                }
            }
    C'est donc une collection de données qui sert à afficher un graphique. Hors, je voudrais indiquer dans mon appel à LoadLineChartData quel champ de ma collection à utiliser. Mais comment faire ?

    Merci pour votre aide car en plus ce n'est vraiment pas clair !

  2. #2
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Non c'est pas tres clair

    Si je comprends bien LoadLineChartData c'est F1
    LoadGraph_Click c'est Donc F2


    C'est donc quoi dans F2 que tu ne parviens pas a passer a F1 ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2003
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 22
    Par défaut
    Citation Envoyé par olibara Voir le message
    Non c'est pas tres clair

    Si je comprends bien LoadLineChartData c'est F1
    LoadGraph_Click c'est Donc F2
    Exact

    Citation Envoyé par olibara Voir le message
    C'est donc quoi dans F2 que tu ne parviens pas a passer a F1 ?
    En fait, dans ma collection, j'ai plusieurs données disponibles. Hors si la case est cochée, je dois donc charger les données sur le graph. Dans l'exemple, c'est analyse.KH qui est indiqué en dur dans la fonction LoadLineData. Comment faire pour que ce soit analyse.PH qui soit chargé lors du deuxième appel fait dans LoadGraph_Click ?

  4. #4
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Tu parle de LoadLineChartData je présume ?

    Qu'est ce qui t'empeche de passer ta collection en parametre de cette methode ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2003
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 22
    Par défaut
    Citation Envoyé par olibara Voir le message
    Tu parle de LoadLineChartData je présume ?

    Qu'est ce qui t'empeche de passer ta collection en parametre de cette methode ?
    En fait, en fonction de l'appel, si la case est cochée ou non, j'appelle tel ou tel attribut de ma collection.

    Exemple : case KH cochée, alors dans LoadLineChartData, c'est l'attribut analyse.KH qui est appelé.
    case PH cochée, alors dans LoadLineChartData, c'est l'attribut analyse.PH qui est appelé.

    mais je ne sais pas comment faire.

  6. #6
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Salut

    Si c'est toi qui a écrit le code en exemple je ne comprends pas bien ce que tu ne parviens pas à faire qui me semble trivial, ou alors je n'ai rien compris a la question

    Mais si ce n'est pas toi qui a écris ce code, le domaine de la question et de la réponse deviens plus vaste

  7. #7
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Citation Envoyé par boujouman
    OK. Maintenant, peux-tu me faire une proposition ? Tout simplement me dire si c'est possible ou pas ?
    Mais je t'ai déja fait cette proposition

    Citation Envoyé par olibara Voir le message
    Qu'est ce qui t'empeche de passer ta collection en parametre de cette methode ?

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 203
    Par défaut
    J'ai peut être pas bien compris le problème, mais apparemment tu as 2 fois le même bloc de code donc pourquoi tu ne fais pas un truc tout simple comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    	private void LoadGraph_Click(object sender, RoutedEventArgs e)
            {
                mcChart.Series.Clear();
     
    			LoadGraph( chckBxKH.IsChecked);
    			LoadGraph( chckBxPH.IsChecked);          
            }
     
     
    		void LoadGraph( bool isChecked)
    		{
    		    if (isChecked == true)
                {
    				var ls = new LineSeries();
    				ls.IndependentValuePath = "Key";
    				ls.DependentValuePath = "Value";
    				ls.Title = Title;
    				//a.DataPointStyle = adps;
    				var list = new List<KeyValuePair<DateTime, double>>();
    				foreach (Analyse analyse in _AnalyseCollection)
    				{
     
    					list.Add(new KeyValuePair<DateTime, double>(analyse.Date, double.Parse(analyse.KH)));
    				}
    				ls.ItemsSource = list;
    				mcChart.Series.Add(ls);
                }
    		}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/02/2013, 20h27
  2. Passer une référence à une classe dans un constructeur
    Par alefriedx dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 09/02/2011, 22h07
  3. Aide pour une ramener une info en fonction d'une date maximum
    Par dessinateurttuyen dans le forum SQL
    Réponses: 7
    Dernier message: 31/10/2008, 16h52
  4. Comment faire une référence à une figure ?
    Par aminos40 dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 2
    Dernier message: 06/07/2007, 11h43
  5. Réponses: 17
    Dernier message: 24/11/2006, 18h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo