Ho un Datagrid WPF che sto usando con un numero di colonne. Una delle colonne ha alcuni elementi che a volte sono nulli e questo causa un'eccezione quando provo a ordinare su questa colonna.Ordinamento Datagrid WPF su colonna con elementi null
Le definizioni delle colonne è qualcosa di simile:
<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>
Se I sorta sulla colonna Field1 va bene, se mi sorta sulla colonna di Campo2 e non ci sono nulla Campo2 oggetti va bene, ma a volte ci sono e il DataGrid cerca di ordinare il sottocampo (credo) e colpisce un'eccezione null:
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.
ho provato a fissare SortMemberPath a "MyObject.Field2.SubField", ma naturalmente questo non risolvere il problema in quanto Field2 è ancora a volte nullo. Mi sono chiesto di provare a utilizzare un convertitore in cui ho impostato SortMemberPath e il convertitore restituisce string.empty per qualsiasi elemento nullo ma non è riuscito a farlo funzionare.
Ho anche provato ad aggiungere "TargetNullValue = {x: Static sys: String.Empty}" all'interno del binding di queste colonne ma ancora non ha funzionato.
Qualsiasi consiglio/suggerimento sarebbe più apprezzato. Grazie,
Si può semplicemente assicurarsi che il proprio oggetto non sia mai nullo utilizzando un convertitore o semplicemente lo istanzia (se è nullo) quando si ottengono i dati per il datagrid. –