Bonjour,
J'ai créé un composant personnalisé permettant d'afficher une note sous forme d'étoiles (note sur 5 avec 5 étoile). Cependant je n'arrive pas à rafraîchir les images.
Je vous montre mon code en prenant pour exemple seulement la première étoile puisque le reste n'est que de la répétition.
Voici pour le xaml du contrôl :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <Style TargetType="{x:Type local:RatingControl}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type local:RatingControl}"> <StackPanel Orientation="Horizontal" > <Image Height="18" Width="18" VerticalAlignment="center" > <Image.Source> <BitmapImage UriSource="{Binding Star0, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" /> </Image.Source> </Image> </StackPanel> </ControlTemplate> </Setter.Value> </Setter> </Style>
Et voici maintenant mon code behind :
Code C# : 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 public class RatingControl : Control { public string Star0 { get { return (string)GetValue(Star0Property); } set { SetValue(Star0Property, value); } } public static readonly DependencyProperty Star0Property = DependencyProperty.Register("Star0", typeof(string), typeof(RatingControl), new UIPropertyMetadata("")); static RatingControl() { DefaultStyleKeyProperty.OverrideMetadata(typeof(RatingControl), new FrameworkPropertyMetadata(typeof(RatingControl))); }
J'ai donc à la suite une fonction permettant de modifier Star0 par un nouveau chemin, celle ci modifie correctement la propriété mais graphiquement rien ne se passe...
Je suis complètement coincé là dessus, si quelqu'un a une idée...
N'hésitez pas si vous avez besoin de plus de précisions.
Merci
Partager