Parent-Child-View temporär nicht filtern?

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von asury.

    Parent-Child-View temporär nicht filtern?

    Hallo!

    Ich habe eine klassische Parent-Child-View Verbindung in DataGridViews
    dargestellt. Kategorie zu anderen Datensätzen. Funktioniert alles wunderbar.

    Jetzt möchte ich aber, dass man die Filterei, also "klicke-Kategorie-zeige-alle-Datensätze-der-Kategorie"
    temporär deaktivieren kann, damit man alle Datensätze in dem DataGridView sieht, sprich ungefiltert alle
    Datensätze anzeigen, unabhängig von der Kategorie. Die Möglichkeit zum Filtern nach Kategorie soll aber
    bei Bedarf wieder aktiviert werden können.

    Gibt es diese Möglichkeit, oder muss ich dafür einen extra ungefilterten DataGridView
    daneben erstellen (sehr ungern)?
    Da muss man bischen frickeln - 2 Möglichkeiten (annahme: das kategorisierte seien Artikel):
    1. Du hast eine annere Artikel-BindingSource auffm Form, die nicht den Kategorien untergeordnet ist, an die aber auch kein DGV gebunden ist.
      Zum Umschalten setzst du die DataSource deines bisherigen Artikel-DGVs darauf.
    2. Die ArtikelBindingSource ist per se nicht den Kategorien untergeordnet.
      Der ParentchildView wird umgesetzt, indem bei KategorieBindingSource_CurrentChanged ein Filter auf die ArtikelBindingSource gesetzt wird.
      Zum Umschalten wird der Filter komplett gelöscht.
    Danke für Deine Idee/Antwort!

    Hat super funktioniert! Habe jetzt einfach die BindingSource bei
    ButtonKlick ausgetauscht.

    VB.NET-Quellcode

    1. Private Sub btnShowAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShowAll.Click
    2. ModelDataGridView.DataSource = ModelAllBindingSource
    3. CategoryDataGridView.DefaultCellStyle.SelectionBackColor = Color.LightGray
    4. End Sub
    5. Private Sub CategoryDataGridView_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CategoryDataGridView.SelectionChanged
    6. If Not ModelDataGridView.DataSource Is ModelBindingSource Then
    7. ModelDataGridView.DataSource = ModelBindingSource
    8. CategoryDataGridView.DefaultCellStyle.SelectionBackColor = Color.DodgerBlue
    9. End If
    10. End Sub