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 xaml : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Partager