Hi,
ich brauche mal wieder Eure Hilfe.
verwendetes Datenbanksystem: <MS SQL Server Compact 3.5>
Das Szenario ist wie folgt:
Ich halte Daten in einem DataTable.
Zum Einen habe ich das DataTable mittels BindingSource an ein DataGridView A gebunden.
Mit einer TextBox kann der Benutzer die Daten filtern.
Ich reagiere auf das TextChanged Event der TextBox und ändere die Filter-Eigenschaft der BindingSource.
Zum Anderen ist das DataTable (nicht die BindingSource) direkt an eine DataGridViewComboBoxColumn eines zweiten DataGridViews B gebunden.
Wenn der Benutzer einen Suchtext in die TextBox eingibt, wird wie erwartet die entsprechenden Daten im DataGridView A angezeigt.
Gleichzeitig greift der Filter aber auch in der DataGridViewComoBoxColumn.
Das ist aber nicht beabsichtigt. In der DataGridViewComboBoxColumn sollen ungefiltert alle Werte aus der DataTable angezeigt werden.
Ich hätte erwartet, dass die Filterung nur durch die BindingSource "sichtbar" ist und das DataTable unverändert bleibt.
Ich hoffe Ihr versteht, was ich meine ...
Habe ich was falsch gemacht, oder wird der Filter wirklich auf das DataTable projeziert?
Vielen Dank
caldicot
Hi,
der DataTable hat die DefaultView-Eigenschaft und somit werden alle Sortierungs- und Filteränderungen direkt dahin weitergegeben.
Binde einfach an eine eigene DataView:
DataView dataView = new dataView(dataTable);
control.DataSource = dataView;
Vielen Dank, jetzt klappt es.
An die DefaultView Eigenschaft hatte ich nicht gedacht.
Ich hätte gehofft, dass das die BindingSource für mich erledigt..
Jetzt habe ich für das 2. Binding ein extra DataView angelegt und es funtioniert.
Danke für die Hilfe
caldi