Bonjour,
Débutant en silverlight, sur un projet assez conséquent, je me pose pas mal de question sur la bonne méthode a utiliser pour créer mon objet graphique.
Ma question précise.
pour faire simple j'ai un objet chargé en code behind, on va prendre une liste de Personne où une personne à un nom,un prenom et un sexe (qui va prendre toute son importance.)
J'essaie de créer une liste XAML ou je vais afficher mes noms et prenoms.
Après une construction complète en C#, j'ai créer un template ou je bindais 2 textblock sur mes property nom et prenom. Jusque là ca allait, mais j'ai du aller plus loin dans ma liste : effet de survol, selection, et affichage différent selon le sexe.
je me suis basé sur l'article suivant : http://mark-dot-net.blogspot.com/200...ht-part-3.html
J'arrive a créer mon élément mais j'ai cassé le binding à ce moment là.
Plus j'avance et plus je pense ne pas avoir aborder mon problème par le bon bout.
mon code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
<StackPanel Background="AliceBlue">
<StackPanel.Resources>
<Style TargetType="ListBoxItem" x:Key="lstItem">
<Setter Property="Padding" Value="0"></Setter>
<Setter Property="Foreground" Value="Red"></Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<StackPanel Background="Aqua">
<TextBlock x:Name="prenom" Text="{Binding Path=prenom}"></TextBlock>
<TextBlock x:Name="nom" Text="{Binding Path=nom}"></TextBlock>
<ContentPresenter Content="{TemplateBinding Content}" />
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="ListBox" x:Key="lst">
<Setter Property="Width" Value="180"></Setter>
<Setter Property="Padding" Value="0"></Setter>
<Setter Property="Margin" Value="0"></Setter>
<Setter Property="ItemContainerStyle" Value="{StaticResource lstItem}" />
<Setter Property="ItemsSource" Value="iLstPersonne"></Setter>
</Style>
</StackPanel.Resources>
<ListBox Style="{StaticResource lst}" Name="lstPersonneXaml">
</ListBox>
</StackPanel> |
et en code behind je lie ma liste a ma liste d'objet C#.
ma liste est remplie
lstPersonneXaml.ItemsSource = iLstPersonne;
Qu'en pensez vous ?
En fait je voudrais faire un peu la même chose que dans l'article cité en ajoutant un lien entre ma liste Xaml, et ma liste d'objet.
Partager