Entwickler-Ecke

WinForms - ComboBox und DataGridView nutzen gleiche DataSet-Tabelle


Zorgoban - Fr 04.04.08 10:25
Titel: ComboBox und DataGridView nutzen gleiche DataSet-Tabelle
Hallo!

Wie der Titel bereits verrät, hab ich in einem Windows Form eine ComboBox und ein DataGridView, welche sich in einem DataSet eine Tabelle teilen. Unglücklicherweise teilen sie sich dadurch scheinbar auch automatischerweise die aktuelle Auswahl. Das bedeutet, wenn ich im DataGridView eine Zeile zur Bearbeitung auswähle, dann wird auch die Auswahl der ComboBox geändert. Ich hab bereits alle möglichen Eigenschaften durchgesehen und kann nicht herausfinden, wodurch dieses absolut unerwünschte Verhalten hervorgerufen wird. Hat jemand eine Idee?

Grüße!
Zorgoban


Zorgoban - Fr 04.04.08 11:04

Ok, es scheint mit dem Designer zusammen zu hängen.
Wenn ich das Dropdown, wie folgt, per code initialisiere, dann zeigt es nicht mehr dieses Verhalten:


C#-Quelltext
1:
2:
3:
4:
5:
6:
// init language dropdown datasource
// when it is set via designer, it synchronices selection with new languagestring datagrid
// absolute bullcrap
m_LanguageCombo.DisplayMember = "lngName";
m_LanguageCombo.ValueMember = "lngId";
m_LanguageCombo.DataSource = m_DataSource.Tables["language"];


Kha - Fr 04.04.08 13:12

Wie hast du die Controls an das DataSet genau gebunden? Ich kann mir nur vorstellen, dass beide dieselbe BindingSource verwendet haben. Dann darfst du dich nicht wundern, schließlich ist die Klasse genau dafür da.


Zorgoban - Mo 07.04.08 09:48

Servus!

Ich hatte die Controls direkt an ein DataSet gebunden. Hab jetzt mal zwei BindingSources verwendet, um an die selbe Tabelle zu binden. Das funktioniert nun auch. Irgendwie hab ich das mit dem BindingSource noch nicht ganz raus.

Grüße!
Zorgo


Zorgoban - Mo 07.04.08 14:19

Soll hier einen Vermerk wegen Crossposting machen. Weiter geht es hier:

http://www.mycsharp.de/wbb2/thread.php?threadid=53516