2010-11-03 31 views
2

Je veux trier un DataGrid WPF-Toolkit sur une colonne qui est lié comme ceci:WPF Toolkit DataGrid: Tri des valeurs NULL

<toolkit:DataGrid.Columns> 
    <toolkit:DataGridTextColumn Header="MyColumn" Binding="{Binding AnObject.AProperty}" /> 
</toolkit:DataGrid.Columns> 

Maintenant, quand anObject est nul, un ArgumentException avec le message « A au moins un objet doit implémenter IComparable " sera lancé.

Quelle est la meilleure façon de contourner cette limitation? Je ne veux pas vraiment changer le modèle de domaine pour retourner un NullObject-Pattern.

L'utilisation de Convertisseurs en association avec une liaison directement à AnObject peut s'avérer très fastidieuse, car j'ai plusieurs de ces colonnes et plusieurs DataGrid.

Dois-je écrire un ViewModel personnalisé foreach DataGrid et utiliser un convertisseur sur la propriété ItemsSource?

J'apprécie chaque suggestion!

Répondre

1

J'irais avec une stratégie différente: créer un ViewModel pour AnObject avec une propriété qui expose AProperty et l'utilise sur tous les DataGrids. La VM devrait être capable d'envoyer les valeurs appropriées sur AProperty quand AnObject est nul.

+0

Mais alors je devrais convertir ItemSource de DataGrid (une liste d'entités de domaine) en un modèle contenant le ViewModel pour AnObject. Merci beaucoup pour votre avis, cependant. – Falcon