ListView, Sort et DataTemplates
J'affiche dans une ListView des objets de type Contact et Organisation. Tous deux dérivent d'un type de base Entry.
J'affiche des colonnes qui sont communes à Contact et Organisation, donc tout va bien de ce côté là.
Par contre, j'affiche tout de même 1 colonne dont le résultat est "calculé". En clair, il s'agit d'une colonne "Nom".
Quand j'ai une organisation, j'affiche Organisation.Name
et quand j'ai un contact, j'affiche Contact.Title + Contact.FirstName + Contact.LastName.
Ca marche bien avec un contentpresenter avec des datatemplates en ressources pour la colonne en question :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <GridViewColumn Header="Nom">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ContentControl Content="{Binding Object}">
<ContentControl.Resources>
<DataTemplate DataType="{x:Type logic:Contact}">
<TextBlock>
<TextBlock Text="{Binding Title}" />
<TextBlock Text="{Binding FirstName}" />
<TextBlock Text="{Binding LastName}" />
</TextBlock>
</DataTemplate>
<DataTemplate DataType="{x:Type logic:Organisation}">
<TextBlock Text="{Binding Name}" />
</DataTemplate>
</ContentControl.Resources>
</ContentControl>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn> |
Par contre, comment faire un tri sur cette colonne quand je click sur l'en-tête de colonne ?... La méthode des SortDescription me parait un peu compromise.