Je suis ce tutoriel sur la façon d'utiliser un ListView ItemTemplate pour afficher une liste de personnes: http://www.wpf-tutorial.com/listview-control/listview-data-binding-item-template/MVVM ItemTemplate avec contrôle personnalisé
Je compris le concept général mais je suis coincé sur un point.
Voici l'exemple de ItemTemplate:
<Grid>
<ListView Margin="10" Name="lvDataBinding" ItemsSource"={Binding MyPersonsList}">
<ListView.ItemTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="Name: " />
<TextBlock Text="{Binding Name}" FontWeight="Bold" />
<TextBlock Text=", " />
<TextBlock Text="Age: " />
<TextBlock Text="{Binding Age}" FontWeight="Bold" />
<TextBlock Text=" (" />
<TextBlock Text="{Binding Mail}" TextDecorations="Underline" Foreground="Blue" Cursor="Hand" />
<TextBlock Text=")" />
</WrapPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
Ce que je ne comprends pas, est de savoir comment remplacer les TextBlocks avec un contrôle personnalisé comme celui-ci:
<Grid>
<ListView Margin="10" Name="lvDataBinding" ItemsSource"={Binding MyPersonsList}">
<ListView.ItemTemplate>
<DataTemplate>
<WrapPanel>
<MyPersonDisplayer Person="{Binding ???}"/>
</WrapPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
Comment dire le modèle que je veux définir la propriété de contrôle MyPersonDisplayer
Person
avec l'élément source?
EDIT:
J'ai essayé d'ajouter que Person={Binding}
, mais il me affiche cette erreur.
Essayez-le avec ' ' –
lokusking
@lokusking J'ai essayé, mais j'ai une erreur de compilation. Voir ma modification. – Panda
Supprime le bloc de texte. Un seul enfant est pris en charge – lokusking