Bonjour à tous,
J'ai un problème de binding sur un modèle Singleton-ViewModel-View
mon infrastructure est la suivante, j'ai une classe Singleton où ma propriété est déclarée.
Une autre propriété est créée dans mon ViewModel qui reprendre la propriété créée dans mon singleton
Code : 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
21
22
23 public string CurrentMpEvent { get { if (m_CurrentMpEvent == null) m_CurrentMpEvent = MpLibrary.MpEvents.FirstOrDefault(); return m_CurrentMpEvent; } set { m_CurrentMpEvent = value; this.NotifyPropertyChanged("CurrentMpEvent"); } } private void NotifyPropertyChanged(string info) { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(info)); }
Finalement, je binde ma view sur la propriété du ViewModel comme ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public string CurrentMpEventVM { get { return Singleton.Instance.CurrentMpEvent; } }
Le problème est lorsque la propriété du Singleton est setté, la notification ne se fait pas (PropertyChanged = null). D'où peut-venir le problème???
Code : Sélectionner tout - Visualiser dans une fenêtre à part <Label Content="{Binding Path=CurrentMpEventMP, UpdateSourceTrigger=PropertyChanged}" />
Précision, en bindant directement la view au Singleton, cela marche, mais j'aimerais passer par le viewmodel, il me semble que c'est plus propre et plus flexible...
Merci d'avance pour vos réponses.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <Label Content="{Binding Source={x:Static da:Singleton.Instance}, Path=CurrentMpEventMV}" />
Partager