2010-01-13 6 views
0

J'ai une liste déroulante liée à une source de données (clientInfoBindingSource) pour l'élément et le texte sélectionnés, j'utilise un navigateur Binding généré automatiquement sur une source de données différente (totalsBindingSource) et surLe dernier élément d'un bindingSource ne met pas à jour une zone de liste modifiable

this.totalsBindingSource.CurrentChanged += new System.EventHandler(this.updateClientInfo); 

il doit mettre à jour l'objet actuel pour la source de liaison d'informations client.

private void updateClientInfo(object sender, EventArgs e) 
{ 
    clientInfoBindingSource.Position = clientInfoBindingSource.Find("ClientID",ClientIDTextBox.Text); 
} 

Sur le dernier élément de la liste, toutes les zones de texte sont mises à jour correctement, mais la boîte du logiciel déroulant est vide.

Voici le code généré automatiquement pour le combobox

// 
// softwareComboBox 
// 
this.softwareComboBox.DataBindings.Add(new System.Windows.Forms.Binding("SelectedItem", this.clientInfoBindingSource, "Software", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); 
this.softwareComboBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.clientInfoBindingSource, "Software", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); 
this.softwareComboBox.FormattingEnabled = true; 
this.softwareComboBox.Location = new System.Drawing.Point(106, 234); 
this.softwareComboBox.Name = "softwareComboBox"; 
this.softwareComboBox.Size = new System.Drawing.Size(220, 21); 
this.softwareComboBox.TabIndex = 23; 

Tous les pointeurs dans la bonne direction. Cette source de données est liée à un dataset qui a été généré automatiquement à partir d'un serveur SQL.

Pour remplir le menu déroulant de la charge de la principale forme que je fais

this.clientSoftwareTableAdapter.Fill(this.clientsDataSet.ClientSoftware); 
softwareComboBox.Items.AddRange(this.clientscDataSet.ClientSoftware.Select(a => a.Software).ToArray()); 

EDIT - Modification du code ci-dessus à utiliser DataSourceUpdateMode.OnPropertyChanged mais cela n'a pas affecté le comportement.

Répondre

0

Je l'ai reconnu sa défaite et changera uniquement la zone de liste déroulante à une zone de texte, ce qui rend cette réponse pour vérifier le tout.

1

En bref: j'essayer de régler la DataSourceUpdateMode à OnPropertyChanged

+0

La modification n'a pas fonctionné. d'autres idées? –

+0

Je vais devoir jouer avec la reproduction du problème. Vous n'auriez pas un exemple exécutable qui affiche le problème, par hasard? – STW

+0

Avez-vous une adresse e-mail pour vous donner quelques morceaux de la source? Je ne veux pas l'afficher publiquement. –

0

Je ne sais pas si la question est toujours valable, mais avez-vous essayé:

softwareComboBox.DataSource = this.clientsDataSet. 
             ClientSoftware. 
             Select(a => a.Software).ToArray(); 

au lieu d'ajouter les éléments manuellement?

Questions connexes