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

Windows Presentation Foundation Discussion :

Initialiser une comboBox et une listbox avec un fichier texte [Débutant]


Sujet :

Windows Presentation Foundation

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juin 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Juin 2016
    Messages : 24
    Points : 8
    Points
    8
    Par défaut Initialiser une comboBox et une listbox avec un fichier texte
    Bonjour a tous,

    Je me présente, actuellement étudiant en 4e année d'ingénieur, je suis actuellement en stage technique chargé de créer une application sous MVS en utilisant le WPF (xaml pour l'interface graphique et du C# derrière) je me trouve devant un problème assez embêtant et je ne vois vraiment pas par quel bout le prendre ... J'ai cherché sur internet mais je n'ai malheureusement rien trouvé (mauvais mots clés ?!).

    Avant de commencer a vous expliquer plus en détail sachez que j'ai cherché en parcourant les titres des topics sur le forum mais n'ai rien trouvé. Veuillez m'en excuser si ce sujet a déjà été évoqué ce qui est fort probable. De plus je suis nouveau et meme si je pense poster sur le bon sous-forum il se peut que j'ai fais une erreur si tel est le cas encore une fois veuillez m'en excuser ..

    Donc pour rentrer dans le vif du sujet, il s'agit du application de Labelling qui permet d'étiqueter (comme son nom l'indique) des signaux qui seront ensuite passés dans Matlab pour sortir des algorithmes (c'est du machine learning concrètement) qui permettront de détecter les chutes ou tout autre symptômes liés a la maladie de parkinson. Les signaux proviennent d'un petit appareil qui se porte a la ceinture. Voila pour la petite intro je ne m'étend pas trop si certain sont intéressés je pourrai en dire plus ultérieurement.

    En ce qui concerne mon problème, j'ai a l'heure actuelle une ComboBox (liste déroulante avec un ensemble de symptômes) et une ListBox qui se rempli de manière dynamique en fonction du symptôme sélectionné dans la combobox. Ceci fonctionne très bien mais mon tuteur m'a dit récemment qu'il souhaitait pouvoir remplir la comboBox (et par conséquent la listbox) en chargeant un fichier de ce type : nom_Du_Fichier.LABEL_CATEGORIES (un fichier texte finalement ..) qui se présente sous cette forme :


    2
    1. Type of activity S 5
    Sitting
    Standing
    Lying
    Walking
    Running

    2. Severity and location of tremor M 6
    Severe
    Mild
    Left
    Right
    Hand
    Foot


    - Le 2 en haut représente le nombre d'éléments a intégrer dans ma ComboBox
    - Le 1. désigne donc le premier élément (Type of activity)
    - Le S (pour single) signifie qu'il n'y aura qu'un seul symptôme associé (effectivement difficile d'être assis et courir en meme temps )
    - Le 5 désigne le nombre de symptômes associés (a mettre dans ma listbox du coup)

    La deuxième partie est basé sur exactement la meme logique avec le M (multiple) qui signifie que plusieurs symptômes pourront être étiqueté en meme temps

    Pour l'instant voici ce que j'ai fais (histoire d'avoir un peu de code quand meme )

    en xaml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <ComboBox>
                        <ComboBoxItem Selected="activitySelected">Type of activity</ComboBoxItem>
                        <ComboBoxItem Selected="severitySelected">Severity and location of tremor</ComboBoxItem>
    </ComboBox>
     
    <ListBox x:Name="actionsToLabel">
    et en C# :
    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
     
    private void severitySelected(object sender, RoutedEventArgs e)
            {
                List<string> actionList = new List<string>
                {
                    "Severe",
                    "Mild",
                    "Left",
                    "Right",
                    "Hand",
                    "Foot"
                };
                actionsToLabel.ItemsSource = actionList;
            }
     
    private void activitySelected(object sender, RoutedEventArgs e)
            {
                List<string> actionList = new List<string>
                {
                    "Sitting",
                    "Standing",
                    "Lying",
                    "Walking",
                    "Running"
                };
                actionsToLabel.ItemsSource = actionList;
            }

    Je précise que j'ai volontairement allégé le code de façon a retenir que les éléments essentiels et que ce soit en accord avec l'exemple de fichier à utiliser que j'ai donné juste au dessus.

    En soit cela fonctionne très bien mais ce n'est pas ce que je recherche, en gros je voudrais pouvoir dire a mes fonction d'aller chercher tel donnée a tel ligne dans tel fichier de façon a ce qu'il puisse remplir les listes automatiquement..

    Voila désolé pour le pavé c'est pas évident a faire comme description je voulais pas en dire trop peu non plus .. Si quelqu'un a une piste ou un lien vers quelque chose qui pourrait m'aider je suis bien évidemment preneur

    Merci d'avance.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    globalement tu peux faire ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public List<string> ActionList { get; set; } = new List<string>
                {
                    "Severe",
                    "Mild",
                    "Left",
                    "Right",
                    "Hand",
                    "Foot"
                };
    et tu bind le itemssource de la combo sur ActionList

    pour le selecteditem
    tu met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public string SelectedItem { get{.... }
    set{ ....}
    }
    le changement apparait dans le set du selected item


    voici le code complet (qui marche)
    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
     public partial class MainWindow : Window
        {
            public List<string> ActionList { get; set; } = new List<string>
                {
                    "Severe",
                    "Mild",
                    "Left",
                    "Right",
                    "Hand",
                    "Foot"
                };
     
            #region Property Selected
            private string _Selected = null;
            public string Selected
            {
                get { return _Selected; }
                set { _Selected = value;  }
            }
            #endregion
     
     
            public MainWindow()
            {
                InitializeComponent();
                this.DataContext = this;
            }
     
     
        }
    et xaml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <Window x:Class="testComboSelected.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:testComboSelected"
            mc:Ignorable="d"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <ComboBox ItemsSource="{Binding ActionList}"
                      SelectedItem="{Binding Selected }"
                      Margin="10,10,238.4,242.4" />
        </Grid>
    </Window>
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juin 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Juin 2016
    Messages : 24
    Points : 8
    Points
    8
    Par défaut
    Bonjour Ikeas,

    Merci pour cette réponse rapide et du temps que tu as consacré a lire mon post.

    Cependant je voudrais que mes liste se remplissent a partir d'un fichier texte qui contient des données ordonnée de manière a que ce soit toujours la meme structure. Ce qui m'intéresse ce sont précisément les outils qui me permettent de dire par exemple "va chercher le fichier suivant Cocuments/Projet/Label.txt la structure est tel que tu trouvera l'info x a la premiere ligne puis l'info y a la seconde ect .. et remplit les lists avec s'il te plait".

    J'ai peut-être mal compris mais je ne crois pas que ton code fasse ça ..

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    en fait tu decompile chaque lignes avec un parseur type
    ligne a ligne (code microsoft) https://msdn.microsoft.com/fr-fr/lib...(v=vs.71).aspx
    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
    int counter = 0;
    string line;
     
    // Read the file and display it line by line.
    System.IO.StreamReader file = 
       new System.IO.StreamReader("c:\\test.txt");
    while((line = file.ReadLine()) != null)
    {
       Console.WriteLine (line);
       counter++;
    }
     
    file.Close();
     
    // Suspend the screen.
    Console.ReadLine();
    et tu colle dans ta liste une liste type List<Tuple<int,string>> avec pour int numero de la ligne, et string (la ligne)

    tu bind de la meme facon
    sauf que tu fais un itemtemplate pour representer le tuple
    je sais pas si tu vois ce que je veux dire
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juin 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Juin 2016
    Messages : 24
    Points : 8
    Points
    8
    Par défaut
    Bonjour Ikeas,

    Encore une fois merci de ta réponse, désolé de n'avoir pas répondu plus tot mais j'ai préféré cherché par moi-meme avant de poster prématurément.

    En ce qui concerne le binding je pense avoir compris le principe mais je n'arrive malheureusement pas du tout à l'appliquer .. meme le code que tu m'a donné lors de ton premier post ne fonctionne pas chez moi.

    Cependant comme je l'ai dit j'ai fais quelques recherches/tests et je suis arrivé a avancé malgré tout. A l'heure actuelle mon code est fonctionnel et j'arrive a remplir ma ComboBox exactement comme je le souhaite, le problème se situe maintenant au niveau de l'interaction ComboBox/ListBox (en gros j'aimerais bien que ma ListBox change d'éléments en fonction de ce que je sélectionne dans ma ComboBox)

    Voici mon code, désolé d'avance pour les commentaire mal formulé j'ai fais ca très rapidement

    En C# :
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    private void Button_Click_2(object sender, RoutedEventArgs e)
            {
                List<string> fileToList = new List<string>();
                List<string> stringToComboBox = new List<string>();
                List<string> stringToListBox = new List<string>();
                string[] tempoSplitList;
                string line;
                string tempoString;
     
                // Open a new explorer window to select the file
                OpenFileDialog openFileDialog = new OpenFileDialog();
                if (openFileDialog.ShowDialog() == true)
                {
                    // Read the file
                    System.IO.StreamReader file = new System.IO.StreamReader(openFileDialog.FileName);
                    // Copy each line into a list<string>
                    while ((line = file.ReadLine()) != null)
                    {
                        fileToList.Add(line);
                    }
                    file.Close();
                    // Get the number of categories
                    int nbOfItems = Convert.ToInt32(fileToList[0]);
                    // advancement=2 because the two lines of the begining are respectively the number of categories and an empty line
                    int advancement = 2;
                    do
                    {
                        tempoSplitList = null;
                        tempoString = null;
                        // Split the third line of the file
                        tempoSplitList = fileToList[advancement].Split(' ');
                        // Get the number of elements associated to the first category
                        int nbOfElements = Convert.ToInt32(tempoSplitList[tempoSplitList.Length - 1]);
                        // Build the string of the first category
                        for (int i = 1; i < tempoSplitList.Length - 2; i++)
                        {
                            tempoString += " " + tempoSplitList[i];
                        }
                        // Add the string to a list<string> witch will define the content of the Combobox
                        stringToComboBox.Add(tempoString);
                        // Add strings to a list<string> witch will define the content of the ListBox
                        for (int i = 0; i < nbOfElements; i++)
                        {
                            stringToListBox.Add(fileToList[advancement + 1 + i]);
                        }
     
                        advancement += nbOfElements + 2;
                        nbOfItems--;
                    } while (nbOfItems > 0);
     
                    // Association of lists to combobox and listbox
                    textToCB.ItemsSource = stringToComboBox;
                    actionsToLabel.ItemsSource = stringToListBox;
                }
            }
    en xaml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <ListBox Margin="50,0,0,0" x:Name="actionsToLabel" Grid.Row="2" HorizontalAlignment="Left" Height="50" VerticalAlignment="Top" Width="250"/>
    <ComboBox Grid.Row="1" x:Name="textToCB" HorizontalAlignment="Right" VerticalAlignment="Top" Width="120" Height="25"/>
    <Button Content="LOADER" HorizontalAlignment="Left" Margin="305,23,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click_2"/>
    la fonction que j'ai écrite s'active donc lorsque je click sur un bouton que j'ai décidé de rajouter qui servira a charger un fichier formaté je le rappel de cette façon :

    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
     
    2
     
    1. Type of activity S 5
    Sitting
    Standing
    Lying
    Walking
    Running
     
    2. Severity and location of tremor M 6
    Severe
    Mild
    Left
    Right
    Hand
    Foot

    Je tiens a préciser que je suis totalement conscient que mon code n'est pas optimal du tout voir carrément sale... J'ai avant tout essayé d'avoir un résultat. Si certains ont le courage de se plonger un peu dans ce que j'ai fais et ont quelques conseils je leur en serai reconnaissant. Sinon si vous avez une idée de comment faire pour que quand je click que un item de la comboBox la listbox s'adapte je suis également preneur. Pour l'instant ma listbox se remplit avec tout les bons éléments mais ceux ci ne dépendent pas de la sélection sur ComboBox ...

    J'avais réussi a gérer ca très simplement avant en m'étant des gestionnaires d'évent sur les item combobox mais maintenant qu'il sont alloué dynamiquement a partir d'un fichier je suis un peu a cour d'idées ..

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    fait moi un projet exemple que tu colle ici (version reduite de ton projet)
    dit moi avec quel visual studio tu bosse et en quel version de c#
    je te le corrigerais directement

    on gagnera du temps
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juin 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Juin 2016
    Messages : 24
    Points : 8
    Points
    8
    Par défaut
    Ok parfait je fais ca dans l'aprem, je n'étais pas au labo depuis jeudi, le vendredi dernier était férié en Espagne.

    Je t'enverrai le projet que j'utilise pour tester mes fonctionnalité avant de les rajoutées dans le projet principal.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juin 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Juin 2016
    Messages : 24
    Points : 8
    Points
    8
    Par défaut
    Voici un lien qui te permettra de télécharger le zip de mon appli de test !

    https://www.transfernow.net/185mv9r1x13n

    Et voici le fichier .txt (c'est un .LABELING_CATEGORIES mais ca revient au meme) qui va avec :

    https://www.transfernow.net/83ca5151us2w?lng=fr

    En gros lance l'application et click sur le bouton LOADER ensuite sélectionne le fichier exemple2.LABEL_CATEGORIES tu verra que la combobox et la list box se remplissent correctement. Ce que j'aimerais maintenant c'est que lorsque je click sur "type of activity" ou "severity and location of tremor" dans la combo box cela affiche les items correspondants dans la listbox. A savoir pour continuer sur notre exemple lorsque je click sur "type of activity" cela devrait afficher :

    Sitting
    Standing
    Lying
    Walking
    Running

    Et lorsque le click sur "severity and location of tremor" la listbox devrait afficher :

    Severe
    Mild
    Left
    Right
    Hand
    Foot

    Voila, après je comprendrais qu'il y ai plusieurs points qui ne sont pas clairs auquel cas n'hésite pas a me demander des explications. De plus mon projet de test comporte plein d'éléments en vracs, n'y fais pas trop attention. La fonction qui nous intéresse se trouve dans le MainWindow.xaml.cs tu devrais la repérer facilement. Elle se déclenche lorsque l'on appui sur le bouton "LOADER"

    Merci encore pour ton aide.

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    tout marche c'est wpf compatible lol
    deja créer une classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     public class TypesActivity
        {
            public string Name { get; set; }
            public ObservableCollection<string> Elements { get; set; } 
     
            public TypesActivity(){
                Elements = new ObservableCollection<string>();
            }
            public override string ToString()
            {
                return Name;
            }
        }
    modifier le xaml
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <Window x:Class="WpfApplication3.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow"
            Height="350"
            Width="525">
        <Grid>
            <InkCanvas Name="inkCanvas1"
                       Background="YellowGreen"
                       HorizontalAlignment="Left"
                       Margin="10,123,0,42.4"
                       Width="497">
                <Label Content="Label"
                       HorizontalAlignment="Left"
                       Height="100"
                       VerticalAlignment="Top"
                       Width="195"
                       RenderTransformOrigin="0.485,1.693"
                       Margin="0,0,-157,-82" />
            </InkCanvas>
            <Button Content="CLEAR"
                    Margin="0,0,91.4,9.4"
                    Click="Button_Click"
                    Height="22"
                    VerticalAlignment="Bottom"
                    HorizontalAlignment="Right"
                    Width="75" />
            <Button Content="CLOSE"
                    HorizontalAlignment="Right"
                    Margin="0,0,11.4,9.4"
                    VerticalAlignment="Bottom"
                    Width="75"
                    Click="Button_Click_1" />
            <Menu HorizontalAlignment="Stretch"
                  VerticalAlignment="Top">
                <MenuItem Header="_Menu"
                          Click="MenuItem_Click"
                          VerticalAlignment="Stretch">
                    <MenuItem Header="Enable Labelling"
                              Click="MenuItem_Click_1" />
                    <Separator />
                    <MenuItem Header="Enable Synchro" />
                </MenuItem>
            </Menu>
     
            <ComboBox x:Name="textToCB"
                      VerticalAlignment="Top"
                      Height="25"
                      Margin="85,26,313.4,0"
                      ItemsSource="{Binding}"/>
            <ListBox Margin="210,26,0,0"
                     x:Name="actionsToLabel"
                     HorizontalAlignment="Left"
                     Height="92"
                     VerticalAlignment="Top"
                     Width="298" 
                     ItemsSource="{Binding SelectedItem.Elements, ElementName=textToCB}"/>
            <Button Content="LOADER"
                    HorizontalAlignment="Left"
                    Margin="5,26,0,0"
                    VerticalAlignment="Top"
                    Width="75"
                    Click="LoaderClick"
                    Height="25" />
        </Grid>
    </Window>
    enfin voici le code du bouton load (j'ai optimisé ton code par contre j'ai pas enlevé le S 5 et le M6) on aurait pu encore simplifier et tout coller dans le while mais bon c'est du vite fait
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
      private void LoaderClick(object sender, RoutedEventArgs e)
            {
                List<string> fileToList = new List<string>();
                string line;
     
                // Open a new explorer window to select the file
                OpenFileDialog openFileDialog = new OpenFileDialog();
                if (openFileDialog.ShowDialog() == true)
                {
                    ObservableCollection<TypesActivity> Types = new ObservableCollection<TypesActivity>();
                    // Read the file
                    System.IO.StreamReader file = new System.IO.StreamReader(openFileDialog.FileName);
                    // Copy each line into a list<string>
                    while ((line = file.ReadLine()) != null)
                    {
                        if(line.Trim() != "")
                            fileToList.Add(line);
                    }
                    file.Close();
                    // Get the number of categories
                    TypesActivity ta = null;
                    foreach (var item in fileToList)
                    {
                        if (item.ToString().Contains("."))
                        {
                            if (ta != null) 
                            {
                                Types.Add(ta);
                            }
                            int p = item.ToString().IndexOf(".") + 1;
                            string s = item.ToString().Substring(p);
                            ta = new TypesActivity { Name = s };
                            continue;
                        }
                        if(ta != null){
                            ta.Elements.Add(item);
                        }
                    }
                    if (ta != null)
                    {
                        Types.Add(ta);
                    }
     
                    this.DataContext = Types;
                }
            }

    voila j'espere que ca ira
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juin 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Juin 2016
    Messages : 24
    Points : 8
    Points
    8
    Par défaut
    Super, ca fonctionne !

    Merci beaucoup, ca m'a pris un peu de temps pour comprendre ce que tu avais fait. Après en ce qui concerne le binding j'ai encore un peu de mal a comprendre ce qui fait le lien entre la combobox et la listbox..

    Sinon merci aussi d'avoir remit en forme mon projet de test et a partir de maintenant je vais faire pareil que toi en ce qui concerne l'indentation du xaml, je trouve ça beaucoup mieux.

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    pour l'indentation du xaml tu vas dans les parametres de vs
    marque ce post en resolu

    travail sur le binding c'est super simple et tres amusant au final
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

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

Discussions similaires

  1. Mettre à jour une ligne depuis une ComboBox dans une autre feuille
    Par LeoPaul dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/03/2016, 07h23
  2. [Débutant] Récupérer une valeur d'une combobox via une SortedList
    Par smurfing dans le forum VB.NET
    Réponses: 1
    Dernier message: 18/03/2013, 13h32
  3. Comment faire une recherche dans une combobox et une sélection automatique
    Par VictoriusDan dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/12/2009, 16h17
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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