Hallo,
Nichts scheint hier einfach zu gehen.
Ich wollte das DataGridView sortieren: geht aber nur, wenn nicht gebunden.
-> ok ->
Dann versuche ich es mal mit der BindingSource:
private void ComboBoxTimingSortieren_SelectedIndexChanged(object sender, EventArgs e)
{
BindingSourceTiming.DataSource = Timings;
if (BindingSourceTiming.SupportsSorting != true)
{
MessageBox.Show(" no SupportsSorting");
}
switch (ComboBoxTimingSortieren.SelectedItem.ToString())
{
case "Uhrzeit, Led und Relais gemischt":
BindingSourceTiming.Sort = "Uhrzeit ASC";
break;
case "Uhrzeit Led, dann Uhrzeit Relais":
BindingSourceTiming.Sort = "Typ ASC, Uhrzeit ASC";
break;
case "Uhrzeit Relais, dann Uhrzeit Led":
BindingSourceTiming.Sort = "Typ DESC, Uhrzeit ASC";
break;
case "Led Uhrzeit, dann Relais Uhrzeit":
BindingSourceTiming.Sort = "Uhrzeit ASC, Typ ASC";
break;
case "Relais Uhrzeit, dann Led Uhrzeit":
BindingSourceTiming.Sort = "Uhrzeit ASC, Typ DESC";
break;
default:
BindingSourceTiming.Sort = "Uhrzeit ASC";
break;
}
}
Geht auch nicht, da das nicht supported wird. Dazu muss die "zugrunde liegende Liste eine IBindingList sein.
Meine zugrunde liegende Liste ist mit
public List<Timing> Timings;
definiert.
Wie komme ich denn jetzt zu einer IBindingList?
PS: Weil mir das schon im anderen Beitrag von dir aufgefallen ist: es ist keine guter Code, den switch anhand der UI-Texte durchzuführen (was passiert bei Übersetzungen?) - besser wäre entweder der Index oder eine eigene Aufzählung (enum).
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Th69 am .
Das habe ich mir auch schon überlegt, so als Plan B.
Danke, dass du es hier schon dargestellt hast, spart mir etwas Aufwand.
Andererseits ist es ein schwaches Bild von den UI-Entwicklern, ein DataGridView zu entwickeln (was ja an Excel erinnern soll) und dort die Funktionalität des Sortierens (was ich als Basic sehe) so zu machen, dass sie eigentlich nicht in das Gesamtkonzept passt und daher nur mit großer Mühe (wenn überhaupt) zu programmieren ist.
@BerndFfm
Kleine Anmerkung zu der SortDevices Methode.
Das ref kann hier beim Parameter entfallen, da die Referenz auf die Liste nicht geändert wird also nicht überschrieben oder genullt wird.
Auch wenn die die Werte innerhalb der Liste änderst, brauchst du kein ref solange du die Instanz nicht überschreibst.
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Andererseits ist es ein schwaches Bild von den UI-Entwicklern, ein DataGridView zu entwickeln (was ja an Excel erinnern soll) und dort die Funktionalität des Sortierens (was ich als Basic sehe) so zu machen, dass sie eigentlich nicht in das Gesamtkonzept passt und daher nur mit großer Mühe (wenn überhaupt) zu programmieren ist.
Sorry, das liegt nicht an MS sondern daran, daß Du bis jetzt die Grundlagen der SW Architektur nicht verstanden hast.
Das DGV erlaubt das Sortieren, bietet ja extra die Bedienung dieser Schnittstelle an. Das DU dann die falsche Liste nimmst,
ist weder ein MS noch ein DGV problem.
Wie hier schon oft gesagt wurde, nicht erst machen, auf die Schn...e fallen und dann beschweren, sondern endlich mal anfangen
die Grundlagen zu erlesen.
Das spart Dir viel Zeit und Frust.
Also bleibt die Frage, wie das gehen soll, wenn ich die richtige Liste nicht nehmen kann. Dazu brauche ich einen Vorschlag; sonst bleibt mir doch nur das BubbleSort.
Noch mal genauer erklärt: entweder du nimmst eine SortableBindingList<T>, und dann kannst du das Sortieren mittels Sort-Eigenschaft durchführen (dein bisheriger Code) oder aber du sortierst die zugrundeliegende Liste Timings und entfernst deinen restlichen Code.
- Wer lesen kann, ist klar im Vorteil
- Meistens sitzt der Fehler vorm Monitor
- "Geht nicht" ist keine Fehlermeldung!
- "Ich kann programmieren" != "Ich habe den Code bei Google gefunden"
This content has been retired and may not be updated in the future. The product, service, or technology mentioned in this content is no longer supported.
Also werde ich doch die zugrunde liegende Liste Timings sortieren, es sei denn jemand, der die Grundlagen so richtig versteht (z.B. FZelle), bringt mir die richtige Liste, mit der das dann alles kein Problem ist.
This content has been retired and may not be updated in the future. The product, service, or technology mentioned in this content is no longer supported.
ist ein genereller Hinweis, weil der Blogbeitrag 18 Jahre alt ist.
Aber Du arbeitest auch mit einer 20 Jahre alten Technologie, die sich nicht grundlegend geändert hat. Es steht alles im Artikel, was Du brauchst.