Hallo liebe Leute,
bestimmt schon mehrmals angesprochen aber ich machs nochmal.
Ich habe eine WPF-Anwendung mit DataGrid und mehreren Filterboxen.
Meine Klasse Main Implementiert die Klasse INotifyPropertyChanged für die Datenbindung.
Des weiteren habe ich die Propertys AuftrageDT und dView
und
Beim Programmstart wird der DataContext gebunden und dem DataView die DefaultView des DataTables übergeben:
In der WPF bekommt das DataGrid die DataView zugewiesen.
Nun lade ich beim ersten Start ein paar Werte über die Funktion "LadeOffeneAufträge". Gebe ich nun einen Filter an, lädt er in der Sub die richtigen Daten aus der Datenbank, allerdings bleibt mein DataTable leer und der letzte Stand wird angezeigt
Die Sub Zusatzfilter benötige ich um die entsprechenden Eingaben aus der Textbox zu einem Where String zu verketten.
Vorher habe ich das ganze im DataView gefiltert (RowFilter), was auch super funktioniert hat.
Allerdings werden dann die Daten ja nicht aktualisiert.
Das muss aber so sein, daher versuche ich die Daten zu aktualisieren sobald ich auf (z.b.) Offene Aufträge drücke.
Hoffentlich könnt ihr mir ein paar Anregungen bringen:)
bestimmt schon mehrmals angesprochen aber ich machs nochmal.
Ich habe eine WPF-Anwendung mit DataGrid und mehreren Filterboxen.
Meine Klasse Main Implementiert die Klasse INotifyPropertyChanged für die Datenbindung.
Des weiteren habe ich die Propertys AuftrageDT und dView
und
Beim Programmstart wird der DataContext gebunden und dem DataView die DefaultView des DataTables übergeben:
In der WPF bekommt das DataGrid die DataView zugewiesen.
XML-Quellcode
- <DataGrid CanUserSortColumns="True" CanUserReorderColumns="True" IsReadOnly="true" Grid.Row="6" Grid.Column="1" AutoGenerateColumns="False" Grid.ColumnSpan="15" SelectionUnit="FullRow" Name="AuftragsinfoGrid" SelectionMode="Single" ItemsSource="{Binding dView,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}">
Nun lade ich beim ersten Start ein paar Werte über die Funktion "LadeOffeneAufträge". Gebe ich nun einen Filter an, lädt er in der Sub die richtigen Daten aus der Datenbank, allerdings bleibt mein DataTable leer und der letzte Stand wird angezeigt
VB.NET-Quellcode
- Private Sub LadeOffeneAufträge()
- Dim ZusatzFilter As String = BuildFilterString()
- If ZusatzFilter.Length > 0 Then
- If ZusatzFilter.Substring(0, 4) = " and" Then
- ZusatzFilter = ZusatzFilter.Substring(4, ZusatzFilter.Length - 4)
- End If
- 'Lädt alle Offenen Aufträge wenn ein Filter vorhanden ist
- Funktionen.SQLFunktionen.LadeAlleOffenenAufträge(AuftrageDT, ZusatzFilter)
- Else
- 'Lädt alle Offenen Aufträge ohne Filter
- Funktionen.SQLFunktionen.LadeAlleOffenenAufträge(AuftrageDT)
- End If
- FilterLBL.Content = "Filter: Offene Aufträge"
- End Sub
Die Sub Zusatzfilter benötige ich um die entsprechenden Eingaben aus der Textbox zu einem Where String zu verketten.
Vorher habe ich das ganze im DataView gefiltert (RowFilter), was auch super funktioniert hat.
Allerdings werden dann die Daten ja nicht aktualisiert.
Das muss aber so sein, daher versuche ich die Daten zu aktualisieren sobald ich auf (z.b.) Offene Aufträge drücke.
Hoffentlich könnt ihr mir ein paar Anregungen bringen:)