Hallo, ich habe ein DataGrid, in das Eingaben gemacht werden und diese dann als Filterkriterium in einer Datentabelle verwendet werden (diese wird als DataView gebunden). Die Struktur der Tabelle (also die Spalten) sind ein eigenes DataGrid, das als Filter fungiert. Dabei kann man dann bei den betreffenden Spalten Werte für die Filterung machen (<, >, ==, LIKE). Wenn man nun in einer Spalte etwas eingibt, in der z.B. der Datentyp als Integer definiert ist, und man löscht den Eingabewert wieder und verläßt die Zelle, wird der rote Rahmen um die Zelle engezeigt. Ich muss also etwas eingeben. Das möchte ich aber verhindern. Somit habe ich an das Validation.Error-Event gedacht.
Leider brauche ich dazu aber für jede Spalte (Eigenschft) das NotifyOnValidationError = True.
Aber wie mache ich das, denn ich übergebe ja eine Datenabelle als View.
Kann mir dazu jemnd einen Tip geben, wie ich alle Spalten der Datentabelle mit **NotifyOnValidationError = True **im Code Behind setzen kann?
Hi
mal was anderes: Wenn es doch nur ein Filterwert ist, warum nimmst du nicht einfach ein Nullable<int> als Filterwert? Dann sollte der Validator nicht anschlagen.
Hallo, das wird do nicht gehen.
Ich habe mal zwei Bilder eingestellt, wie die Obefläche aussieht. In dem oberen DataGrid stehen die Daten aus der Datentabelle in denen gesucht werden kann, das untere DataGrid dient nur als Suchfilter.
Das Problem ist halt, wenn man wie im zweiten Bild gezeigt, einen Filterwert nach der Eingabe doch entfernen möchte (kombinierter Filter), dann kommt der rote Kringel. Das will ich in einem Event abfangen (Error-Event).
Ist die Zelle einfach nur geleert worden, dann den Kringel (Fehler deaktivieren).
Ich denke, jetzt versteht man das Problem besser.
Nochmal die Info dazu: Ich brauche ja das NotfyOnValidationError = True, für jede dpalte in der Tabelle. aber wie mache ich das, wenn ich den DataGrids ja nur die Datentabelle übergebe. Ich mach das ja nicht in XAML.
Hi
mal was anderes: Wenn es doch nur ein Filterwert ist, warum nimmst du nicht einfach ein Nullable<int> als Filterwert? Dann sollte der Validator nicht anschlagen.
Hallo, habe das probiert, und es funktioniert. Aber nur in einem Fall, wo ich die Filtertabelle komplett neu erstelle (komplette Struktur und Typiesierung).
Ich habe aber noch einen anderen Fall, wo ich die Struktur der Datentabelle einfach klone und für die Filtertabelle verwende. Da geht das nicht. Ich durchlaufe nach dem klonen die geklonte Tabelle mit all ihren Salten, und ändere alle numerischen Typen mit dem Nullable (?).
Im Test ändert sich aber nichts, ich bekomme den roten Kringel. Beim debuggen vor der Ausgabe wurden auch die Typisierungsänderungen nicht angenommen. Geht das bei geklonten Tabellen nicht?