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.


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));
        }
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
public string CurrentMpEventVM
        {
            get
            {
                return Singleton.Instance.CurrentMpEvent;
            }
        }
Finalement, je binde ma view sur la propriété du ViewModel comme ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
   <Label Content="{Binding Path=CurrentMpEventMP, UpdateSourceTrigger=PropertyChanged}" />
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???



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...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<Label Content="{Binding Source={x:Static da:Singleton.Instance}, Path=CurrentMpEventMV}" />
Merci d'avance pour vos réponses.