Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Doppeltes Databinding: Nur die BindingSource filtern, nicht die dahinter liegende DataTable
caldicot
myCSharp.de - Member



Dabei seit:
Beiträge: 51

Themenstarter:

Doppeltes Databinding: Nur die BindingSource filtern, nicht die dahinter liegende DataTable

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Cat
myCSharp.de - Member

Avatar #avatar-3070.jpg


Dabei seit:
Beiträge: 771

beantworten | zitieren | melden

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;
private Nachricht | Beiträge des Benutzers
caldicot
myCSharp.de - Member



Dabei seit:
Beiträge: 51

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers