WPF Datagrid sort sur la colonne avec des éléments null

J’ai un WPF Datagrid que j’utilise avec un certain nombre de colonnes. L’une des colonnes contient des éléments parfois nuls, ce qui provoque une exception lorsque j’essaie de sortinger cette colonne.

Les définitions des colonnes sont quelque chose comme:

    

Si je sortinge sur la colonne Field1, c’est correct, si je sortinge sur la colonne Field2 et qu’il n’y a pas d’object Field2 nul, c’est correct, mais parfois, le DataGrid tente de sortinger sur le sous-champ (je suppose) et atteint une exception nulle:

 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. 

J’ai essayé de définir SortMemberPath sur “MyObject.Field2.SubField” mais cela ne le résout bien sûr pas car Field2 est toujours parfois vide. Je me suis demandé si j’essayais d’utiliser un convertisseur dans lequel je définissais SortMemberPath et que ce convertisseur renvoie ssortingng.empty pour tous les éléments nuls, mais je ne pouvais pas le faire fonctionner.

J’ai également essayé d’append “TargetNullValue = {x: Static sys: Ssortingng.Empty}” dans la liaison de ces colonnes, mais cela ne fonctionnait toujours pas.

Tous les conseils / suggestions seraient les plus appréciés. Merci, Will

Le conseil général serait: N’utilisez pas SortMemberPath. Pas seulement à cause du problème que vous venez de rencontrer. Mais aussi parce qu’ils sont ultra-rapides.

Utilisez plutôt la propriété CustomSort de la classe ListCollectionView. Pour plus de détails, voir “Amélioration des performances de sorting de Microsoft DataGrid CTP” et “Amélioration des performances de sorting de Microsoft DataGrid CTP – Partie 2” . Bien qu’il soit écrit “performances imporve”, il montre également comment résoudre votre problème.

J’espère que cela t’aides :).