Recuperer la valeur d'une cellule de Datagrid et la mettre dans un comboBox
Résolu/Fermé
danny243
Messages postés
74
Date d'inscription
vendredi 19 mars 2021
Statut
Membre
Dernière intervention
16 octobre 2021
-
26 avril 2021 à 01:12
danny243 Messages postés 74 Date d'inscription vendredi 19 mars 2021 Statut Membre Dernière intervention 16 octobre 2021 - 27 avril 2021 à 07:51
danny243 Messages postés 74 Date d'inscription vendredi 19 mars 2021 Statut Membre Dernière intervention 16 octobre 2021 - 27 avril 2021 à 07:51
A voir également:
- Recuperer la valeur d'une cellule de Datagrid et la mettre dans un comboBox
- Aller à la ligne dans une cellule excel - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Recuperer video youtube - Guide
- Comment récupérer un compte facebook piraté - Guide
- Impossible de récupérer mon compte gmail - Guide
5 réponses
Utilisateur anonyme
26 avril 2021 à 19:48
26 avril 2021 à 19:48
Bonjour
la programmation c'est d'abord une logique, et qui dit logique dit cohérence.
Et là tu voies, ça manque de cohérence.
Ça commence par l'appel à
Là où le manque que cohérence fait que ça merdouille c'est ce qui suit:
Cette ligne
Et aussi, cette ligne
Et cette ligne
Comme tu n'as pas montré le code de Film, je fais des plans sur la comète.
Une option est de dire que le datacontext, c'est Film.
et
Et pas besoin de Lid.
la programmation c'est d'abord une logique, et qui dit logique dit cohérence.
Et là tu voies, ça manque de cohérence.
Ça commence par l'appel à
Film.ChargerListeEtudiant();qui manifestement sert à charger une liste de films. Bon ça ne va rien changer à ton problème, mais si dès le départ les méthodes ne font pas ce que leur nom dit, on commence déjà à s'embrouiller.
Là où le manque que cohérence fait que ça merdouille c'est ce qui suit:
Cette ligne
DataContext = this;veut dire que le xaml va chercher les sources de son binding dans ce code behind, or
- y'a rien à binder dans ce code behind (on binde sur des propriétés et y'en a pas)
- 2 lignes plus loin, tu fusilles tout en affectant les itemssources des 2 controles.
Et aussi, cette ligne
<ComboBox HorizontalAlignment="Left" Margin="460,196,0,337" Width="179" x:Name="cbolds" ItemsSource="{Binding LesIds}" DisplayMemberPath="Id" Loaded="Loaded_Cbolds"/>dit que ce combobox doit aller chercher ses items dans la collection de
thisqui s'appelle LesIds
Et cette ligne
cbolds.ItemsSource = Film.Lid;dit que ce même comboxbox doit aller chercher ses items dans une collection de Film qui s'appelle Lid
Comme tu n'as pas montré le code de Film, je fais des plans sur la comète.
Une option est de dire que le datacontext, c'est Film.
public MainWindow() { InitializeComponent(); Film.ChargerListeEtudiant(); DataContext = Film; }
<DataGrid HorizontalAlignment="Left" Height="149" Margin="45,21,0,0" VerticalAlignment="Top" Width="428" Name="dgFilm" AutoGenerateColumns="False" RowBackground="Khaki" AlternatingRowBackground="Lavender" MouseDoubleClick="LigneDG_dblClick" ItemsSource="{Binding films}" >
et
<ComboBox HorizontalAlignment="Left" Margin="460,196,0,337" Width="179" x:Name="cbolds" ItemsSource="{Binding films}" DisplayMemberPath="Id" Loaded="Loaded_Cbolds"/>
Et pas besoin de Lid.
danny243
Messages postés
74
Date d'inscription
vendredi 19 mars 2021
Statut
Membre
Dernière intervention
16 octobre 2021
26 avril 2021 à 20:10
26 avril 2021 à 20:10
Parce que en fait j'ai fait un premier binding pour tous les champs de ma datagrid et là je veux faire juste pour l'id et mettre cela dans le combobox
Utilisateur anonyme
26 avril 2021 à 20:54
26 avril 2021 à 20:54
oui et as tu essayé ce que je t'ai proposé?
danny243
Messages postés
74
Date d'inscription
vendredi 19 mars 2021
Statut
Membre
Dernière intervention
16 octobre 2021
26 avril 2021 à 21:50
26 avril 2021 à 21:50
Quand je fais j'ai une erreur qui dit Film est un type qui n'est pas valide dans le contexte donné
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Collections.ObjectModel; using BLL; namespace UIL { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); Film.ChargerListeEtudiant(); DataContext = Film; // dgFilm.ItemsSource = Film.films; } private void LigneDG_dblClick(object sender, MouseButtonEventArgs e) { txt_Titre.Text = (dgFilm.SelectedItem as Film).Id.ToString(); } private void Loaded_Cbolds(object sender, RoutedEventArgs e) { } } }
Utilisateur anonyme
26 avril 2021 à 22:34
26 avril 2021 à 22:34
Ha oui, ce sont des collections statique, mais film ne l'est pas.
Alors comme ça
Alors comme ça
public MainWindow() { InitializeComponent(); Film.ChargerListeEtudiant(); DataContext = this; } public films {get {return Film.fimls;}}
danny243
Messages postés
74
Date d'inscription
vendredi 19 mars 2021
Statut
Membre
Dernière intervention
16 octobre 2021
26 avril 2021 à 23:15
26 avril 2021 à 23:15
cette ligne de code est à mettre dans le mainwindow ou dans la classe film
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
27 avril 2021 à 07:32
27 avril 2021 à 07:32
Tout ce bout de code va dans la fenêtre
danny243
Messages postés
74
Date d'inscription
vendredi 19 mars 2021
Statut
Membre
Dernière intervention
16 octobre 2021
27 avril 2021 à 07:51
27 avril 2021 à 07:51
d'accord merci
26 avril 2021 à 20:08