Autor Beitrag
dinazavric
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: Fr 29.04.11 09:47 
Hallo,

im folgenden Code wird eine Relation erstellt, die dann auf die ComboBoxes übertragen wird. So werden je nach dem ausgewählten Parameter die möglichen Werte dazu aufgelistet.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
            dataSet2.Relations.Add("ParameterProperties", dataSet2.Tables["Parameters"].Columns["ParameterName"], dataSet2.Tables["ParameterValues"].Columns["ParameterName"]);
            
            P1_Name.DisplayMember = "Parameters.ParameterName"
            P1_Name.ValueMember = "Parameters.ParameterName";
            P1_Name.DataSource = this.dataSet2;
            P1_Value.DisplayMember = "Parameters.ParameterProperties.ValueDefinition";
            P1_Value.ValueMember = "Parameters.ParameterProperties.ParameterName";
            P1_Value.DataSource = this.dataSet2;

was nun, wenn ich eine weitere ComboBox benötige um bspw. noch einen Parameter zu beschreiben? Ich habe es genau so erstellt:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
            P2_Name.DisplayMember = "Parameters.ParameterName";
            P2_Name.ValueMember = "Parameters.ParameterName";
            P2_Name.DataSource = this.dataSet2;
            P2_Value.DisplayMember = "Parameters.ParameterProperties.ValueDefinition";
            P2_Value.ValueMember = "Parameters.ParameterProperties.ParameterName";
            P2_Value.DataSource = this.dataSet2;

Das Problem, dass ich hier bekomme ist, dass wenn ich in der P2_Name-ComboBox einen anderen Parameter auswählen will, ändert sich der erste Parameter in P1_Name-ComboBox. Ich möchte aber die Möglichkeit haben sie unabhängig von einander zu bearbeiten um so zwei Parameter bspw. einem Protokoll zuzuweisen.
Wie geht das?
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 29.04.11 14:47 
Hallo,

da du jeweils die gleiche DataSource verwendest, synchronisierst du somit die beiden ComboBoxen (der eigentliche Sinn vom DataBinding ;-).
Es gibt noch die Klasse BindingSource, welche du dazwischen schalten könntest, d.h. jeweils:
ausblenden C#-Quelltext
1:
2:
3:
4:
BindingSource bs = new BindingSource();
bs.DataSource = dataset;

comboBox.DataSource = bs;

Also für jedes Steuerelement eine eigene BindingSource (mittels new) erstellen.

P.S.
Und BITTE poste NICHT in verschiedenen Foren gleichzeitig dieselbe Frage, dies ist sehr unhöflich den möglichen Antwortgebern gegenüber.
Cross-Post: www.mycsharp.de/wbb2...d.php?threadid=95166

Erst wenn du einige Stunden keine Antwort erhalten hast, dann kannst du dich evtl. an ein anderes Forum wenden (und hier dann auf den Cross-Post hinweisen).

Für diesen Beitrag haben gedankt: dinazavric
dinazavric Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: Fr 29.04.11 15:08 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:

Und BITTE poste NICHT in verschiedenen Foren gleichzeitig dieselbe Frage, dies ist sehr unhöflich den möglichen Antwortgebern gegenüber.


OK, verstehe
dinazavric Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: Fr 29.04.11 15:25 
Zitat:

da du jeweils die gleiche DataSource verwendest, synchronisierst du somit die beiden ComboBoxen (der eigentliche Sinn vom DataBinding ;-).
Also für jedes Steuerelement eine eigene BindingSource (mittels new) erstellen.


Vielen Dank, das hat funkzioniert. Kann man aber auch hier machen, dass wenn die ComboBoxes zum ersten mal erscheinen (beim Fensteröffnen), dass in denen entweder nicht steht, so dass der Benutzer erst selber die Auswahl treffen soll, oder ein bestimmter Wert, falls es vorher deniniert wurde (in dem Fall egal wie, bspw. in einer Tabelle vorgespeichert...)
IsNull
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 97
Erhaltene Danke: 11


VS 2010, C#, AHK
BeitragVerfasst: Fr 29.04.11 16:16 
Die Properties von der ComboBox -> SelectedItem und SelectedIndex sollten reichen ;)

Bei solchen Fragen würde eine Google-Suche schneller Antworten liefern als in einem Forum auf eine Antwort zu warten ;)

Für diesen Beitrag haben gedankt: dinazavric
dinazavric Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: Fr 29.04.11 16:19 
user profile iconIsNull hat folgendes geschrieben Zum zitierten Posting springen:
Die Properties von der ComboBox -> SelectedItem und SelectedIndex sollten reichen ;)

Bei solchen Fragen würde eine Google-Suche schneller Antworten liefern als in einem Forum auf eine Antwort zu warten ;)


Ja, hast Recht ;-) hab hier eigentlich die Frage automatisch reingeschrieben :-) Danke!