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...
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>
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 } } } };
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