Utiliser deux combobox
Fermé
danny243
Messages postés
74
Date d'inscription
vendredi 19 mars 2021
Statut
Membre
Dernière intervention
16 octobre 2021
-
13 mai 2021 à 07:11
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 - 14 mai 2021 à 09:34
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 - 14 mai 2021 à 09:34
A voir également:
- Utiliser deux combobox
- Comment utiliser chromecast - Guide
- Deux comptes whatsapp - Guide
- Deux ecran pc - Guide
- Comment utiliser wetransfer gratuit ? - Guide
- Utiliser tablette comme ecran - Guide
2 réponses
Whismeril
Messages postés
19024
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 avril 2024
928
13 mai 2021 à 08:51
13 mai 2021 à 08:51
Bonjour
dans le code behind de ton contrôle, tu vas ajouter 2 propriété AnneeDebut et AnneeFin, elles doivent être INotifyPropertyChanged.
La propriété SelectedItem des combobox sera bindée sur ces 2 propriétés.
Dans le code get de AnneeDebut, tu affecteras AnneeFin, si sa valeur est inférieure à la nouvelle valeur de AnneeDebut.
Dans le code get de AnneeFin, tu affecteras AnneeDebut, si sa valeur est supérieure à la nouvelle valeur de AnneeFin.
Tu peux même créer 2 collections d'années que tu réduits en fonction de la saisie.
dans le code behind de ton contrôle, tu vas ajouter 2 propriété AnneeDebut et AnneeFin, elles doivent être INotifyPropertyChanged.
La propriété SelectedItem des combobox sera bindée sur ces 2 propriétés.
Dans le code get de AnneeDebut, tu affecteras AnneeFin, si sa valeur est inférieure à la nouvelle valeur de AnneeDebut.
Dans le code get de AnneeFin, tu affecteras AnneeDebut, si sa valeur est supérieure à la nouvelle valeur de AnneeFin.
Tu peux même créer 2 collections d'années que tu réduits en fonction de la saisie.
Whismeril
Messages postés
19024
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 avril 2024
928
14 mai 2021 à 09:34
14 mai 2021 à 09:34
Tu t'es compliqué la vie pour rien.
Voici un exemple autonome à adapter pour toi
Voici un exemple autonome à adapter pour toi
/// <summary> /// Pour l'exemple crée une liste d'annnées de 1900 à 2021 /// </summary> private List<int> toutesLesannees = Enumerable.Range(1900, 122).ToList(); private int anneeDebut = 0; /// <summary> /// Année de début à sélectionner /// </summary> public int AnneeDebut { get { return anneeDebut; } set { anneeDebut = value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("AnneeDebut")); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("AnneesFin"));//signale la réactualisation de la liste source du combo de fin } } private int anneeFin = 0; /// <summary> /// Année de fin à sélectionner /// </summary> public int AnneeFin { get { return anneeFin; } set { anneeFin = value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("AnneeFin")); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("AnneesDebut"));//signale la réactualisation de la liste source du combo de début } } /// <summary> /// Liste d'années pour le combo de début, qui dépend de la valeur de anneeFin /// </summary> public IEnumerable<int> AnneesDebut { get { return anneeFin == 0 ? toutesLesannees : toutesLesannees.Where(a => a < anneeFin); } } /// <summary> /// Liste d'années pour le combo de fin, qui dépend de la valeur de anneeDebut /// </summary> public IEnumerable<int> AnneesFin { get { return anneeDebut == 0 ? toutesLesannees : toutesLesannees.Where(a => a > anneeDebut); } } public event PropertyChangedEventHandler PropertyChanged;
<ComboBox ItemsSource="{Binding AnneesDebut}" SelectedItem="{Binding AnneeDebut}" HorizontalAlignment="Left" Height="21" Margin="99,275,0,0" VerticalAlignment="Top" Width="130"/> <ComboBox ItemsSource="{Binding AnneesFin}" SelectedItem="{Binding AnneeFin}" HorizontalAlignment="Left" Height="21" Margin="264,275,0,0" VerticalAlignment="Top" Width="128"/>
13 mai 2021 à 08:53
14 mai 2021 à 00:41
voila une partie du code
14 mai 2021 à 00:49
14 mai 2021 à 01:08