Ich habe ein WPF Datagrid, das ich mit einer Anzahl von Spalten verwende. Eine der Spalten hat einige Elemente, die manchmal null sind, und dies verursacht eine Ausnahme, wenn ich versuche, nach dieser Spalte zu sortieren.WPF-Datagrid-Sortierung für Spalte mit Nullelementen
Die Definitionen der Spalten ist so etwas wie:
<dg:DataGrid.Columns>
<dg:DataGridTextColumn Binding="{Binding MyObject.Field1}" Header="Field1" Width="Auto" />
<dg:DataGridTextColumn Binding="{Binding MyObject.Field2.SubField}" Header="Field2" Width="Auto" />
</dg:DataGrid.Columns>
Wenn ich irgendwie auf Field1 Spalte es in Ordnung ist, wenn ich irgendwie auf Field2 Spalte und es gibt keine null Field2 es feine Objekte ist, aber manchmal gibt und das Datagrid versucht, auf dem Teilfeld (I guess) und trifft auf eine null-Ausnahme zu sortieren:
System.InvalidOperationException was unhandled
Message=The SortDescriptions added are not valid. The probable solutions are to set the CanUserSort on the Column to false, or to use SortMemberPath property on the Column, or to handle the Sorting event on DataGrid.
ich habe versucht Einstellung SortMemberPath auf „MyObject.Field2.SubField“ aber natürlich das es nicht, da nicht beheben Feld2 ist immer noch manchmal null. Ich habe mich gefragt, ob ich versuchen sollte, einen Konverter zu verwenden, wo ich den SortMemberPath setze und diesen Konverter string.empty für alle NULL-Elemente zurückgeben lasse, aber es nicht zum Laufen bringen konnte.
Ich habe auch versucht, "TargetNullValue = {x: Static sys: String.Empty}" innerhalb der Bindung dieser Spalten, aber es hat immer noch nicht funktioniert.
Alle Ratschläge/Vorschläge würden am meisten geschätzt werden. Danke, Will
Sie können einfach sicherstellen, dass Ihr Objekt niemals null ist, indem Sie einen Konverter verwenden oder ihn nur instanziieren (wenn es null ist), wenn Sie die Daten für das Datagrid abrufen. –