Bonjour tout le monde![]()
Je veux ajouter un champs "autre" dans une combo box qui prends ses valeurs de ma base de données par le binding
mais je ne sais pas comment faire![]()
Merci d'avance![]()
Bonjour tout le monde![]()
Je veux ajouter un champs "autre" dans une combo box qui prends ses valeurs de ma base de données par le binding
mais je ne sais pas comment faire![]()
Merci d'avance![]()
Sûrement un cas d'utilisation pour une CompositeCollection...
Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
Mon blog : pragmateek.com
Bonsoir ;
Merci beaucoup Pragmateek pour ton indication![]()
J'ai essayé ceci :Mais ça n'a pas marché
Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <ComboBox x:Name="combocatP" HorizontalAlignment="Left" Height="25" Margin="180,160,0,0" VerticalAlignment="Top" Width="120"> <ComboBox.ItemsSource> <CompositeCollection> <ComboBoxItem Content="Autre"></ComboBoxItem> <CollectionContainer Collection="{Binding Path= catP}" /> </CompositeCollection> </ComboBox.ItemsSource> </ComboBox>![]()
Mon combo box ne m'affiche pas le champ " Autre " :p :p
Euh tu ne veux pas plutôt dire qu'elle ne t'affiche QUE le champ "Autre" ?...
Si c'est le cas c'est "normal" et le fix est un peu tordu :
Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <ComboBox x:Name="combocatP" HorizontalAlignment="Left" Height="25" Margin="180,160,0,0" VerticalAlignment="Top" Width="120"> <ComboBox.Resources> <CollectionContainer x:Key="cc" Collection="{Binding Source={x:Reference combocatP},Path=DataContext.catP}" /> </ComboBox.Resources> <ComboBox.ItemsSource> <CompositeCollection> <ComboBoxItem Content="Autre"></ComboBoxItem> <StaticResourceExtension ResourceKey="cc"></StaticResourceExtension> </CompositeCollection> </ComboBox.ItemsSource> </ComboBox>
![]()
Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
Mon blog : pragmateek.com
Non par contre il ne m'affiche que les données de ma bases de données( du binding ..)
J'ai testé ton code mais j'ai toujours le même problème , mon champ " autre " ne s'affiche pas![]()
Je pense ça peut etre du au code du binding ( ci-dessous) de mon combobox
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public void bindComboCatP(ComboBox comboBoxName) { SqlDataAdapter da = new SqlDataAdapter("Select * FROM CategorieProduit", Connexion); DataSet ds = new DataSet(); da.Fill(ds, "catP"); comboBoxName.ItemsSource = ds.Tables["catP"].DefaultView; comboBoxName.DisplayMemberPath = ds.Tables["catP"].Columns["nomCategorie"].ToString(); comboBoxName.SelectedValuePath = ds.Tables["catP"].Columns["codeCategorie"].ToString(); comboBoxName.SelectedIndex = 0; }
Merci d'avance pour vos réponses![]()
Ah dans ce cas c'est normal si tu écrases l'ItemsSource depuis le code behind.
En plus tu bindes à des objets "complexes".
Voici ce que ça devrait donner :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 comboBoxName.ItemsSource = new CompositeCollection { new CollectionContainer{ Collection = ds.Tables["catP"].DefaultView }, new CollectionContainer{ Collection = new [] { new { nomCategorie = "Autre", codeCategorie = -1 } } } };
Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
Mon blog : pragmateek.com
Merci beaucoup Pragmateekça marche maintenant
![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager