Verhalten Datagridview

03/10/2008 - 15:03 von Maik Weiß | Report spam
Hallo NG,

bin beim Arbeiten mit dem DGV auf ein Verhalten gestoßen,
was mir suspekt erscheint.
Und zwar, wenn ich bei einem DGV auf einen Spaltenkopf zum
Sortieren (auf oder Absteigend) klicke, dann wird
die DataSourceChanged-Eigenschaft ausgelöst!
Wieso und Warum? Ändert diese Sortierung etwas an der DataSource?
Und wenn, wie kann man das unterbinden, dass jedesmal DataSourcechanged
ausgeführt wird?

Mfg
Maik
 

Lesen sie die antworten

#1 Elmar Boye
03/10/2008 - 19:01 | Warnen spam
Hallo Maik,

"Maik Weiß" schrieb ...
Und zwar, wenn ich bei einem DGV auf einen Spaltenkopf zum
Sortieren (auf oder Absteigend) klicke, dann wird
die DataSourceChanged-Eigenschaft ausgelöst!



Das kann ich hier (.NET 3.5SP1) nicht feststellen,
Auch ein Blick in den Reflector zeigte, dass das Ereignis bem DataGridView
nur beim Setzen der DataSource Eigenschaft ausgelöst wird.

Wieso und Warum? Ändert diese Sortierung etwas an der DataSource?



Eine Sortierung bewirkt ein Zurücksetzen der zugrundliegenden Liste,
Wobei die Aktion an eine IBindingList delegiert wird (ApplySort).
Und z. B. die Auflistung einer DataView wird darauf neu erstellt,
es bleibt aber die gleiche Instanz.

Und wenn, wie kann man das unterbinden, dass jedesmal DataSourcechanged
ausgeführt wird?



Schau nach ob Dein Code indirekt zum Setzen der DataSource führt.
Ich weiß ja nicht, wozu die Eigenschaft überwachst, aber beachte:
DataSource alleine ist nicht (immer) ausreichend, denn ein BindingContext
setzt sich aus DataSource und DataMember zusammen.

Gruß Elmar

Ähnliche fragen