Binding Singleton - ViewModel - View
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:
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:
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:
<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:
<Label Content="{Binding Source={x:Static da:Singleton.Instance}, Path=CurrentMpEventMV}" />
Merci d'avance pour vos réponses.