Partage
  • Partager sur Facebook
  • Partager sur Twitter

Créer une collection de collection pour combobox ?

    25 avril 2019 à 15:25:22

    Bonjour,

    Je viens vers vous car j'ai quelque soucis à travailler sur un gros projet utilisant le design patern MVVM, et je commence à réellement déprimer. Néanmoins il est important que je termine le projet, alors je viens vers vous pour tenter de trouver un bout de solution;

    Voici mon code :

                    <ComboBox Name="cmbListeChoix" Width="165" Height="25" Margin="25,5,10,10" 
                              ItemsSource="{Binding ChoicesList}"
                              SelectedValue="{Binding SelectedChoiceList}">
                    </ComboBox>
                    <ComboBox Name="cmbResultatChoix" Width="165" Height="25" Margin="10,5,25,10" ItemsSource="{Binding ResultList}">

    Pour la partie WPF, et pour le ViewModel :

            private string _SelectedChoiceList;
            public string SelectedChoiceList
            {
                get
                {
                    return _SelectedChoiceList;
                }
                set
                {
                    if (value != _SelectedChoiceList)
                    {
                        _SelectedChoiceList = value;
    
                        RaisePropertyChanged(nameof(SelectedChoiceList));
    
                        ResultList = new ObservableCollection<string>();
    
                        if (value == "Etablissement")
                        {
                            _ResultList.Add("Etablissement1");
                            _ResultList.Add("Etablissement2");
    
                        }
                        else if (value == "Service")
                        {
                            _ResultList.Add("Service1");
                            _ResultList.Add("Service2");
    
                        }
                        else
                        {
                            _ResultList.Add("Section1");
                            _ResultList.Add("Section2");
                        }
    
                    }
                }
            }
    
            private ObservableCollection<string> _ResultList;
            public ObservableCollection<string> ResultList
            {
                get
                {
                    return _ResultList;
                }
                set
                {
                    if (value != _ResultList)
                    {
                        _ResultList = value;
                        RaisePropertyChanged(nameof(ResultList));
    
                    }
                }
            }


    Mon but était, en selectionnant un choix de la combobox1, afficher une liste dans la deuxieme. Grâce à l'aide de SiDDD du forum, j'ai pu en comprendre un peu plus à ce sujet.
    Mais je suis confronté à un autre probleme, j'aimerais faire la même chose avec des ObservablesCollections. J'ai trois Collections que voici :

                Etablissement = new ObservableCollection<Etablissement>((await _dataService.GetEtablissements().ConfigureAwait(false)));
                Services = await _dataService.GetServicesAsync(true).ConfigureAwait(false);
                Sections = await _dataService.GetSectionsAsync(_dataService.ParamGlobaux.IDEtablissement).ConfigureAwait(false);


    Evidemment, je ne peux pas reprendre la même structure, puisque _ResultList est une liste de string, donc il ne veut pas convertir. L'idéal serait donc, dans ma tête , de faire de ResultList une collection pouvant contenir les trois autres collections, et selon la valeur de la combobox 1 binder soit la Collection Entreprise, soit Section, soit Service;

    Merci d'avance à ceux qui se pencheront sur mon cas;

    • Partager sur Facebook
    • Partager sur Twitter

    Créer une collection de collection pour combobox ?

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown