2012-04-03 3 views
0

У меня есть View, который подключен к ViewModel. У меня есть одноэлементный класс, который вызывается foo.Current. У меня есть свойство в этом классе, которое будет меняться в результате команды нажатия кнопки, вызывающей функцию foo.Current. Я хочу иметь возможность привязывать текст текстового поля к этому значению, и когда это значение обновит текстовое поле, оно будет обновляться. My ViewModel реализует INotifyPropertyChanged, и у меня есть другие свойства в модели представления, которые прекрасно контролируют элементы управления. Каков наилучший способ заставить этот одноэлементный класс обновить мой ViewModel с новым значением? Я думаю, мне нужно выяснить, как сделать класс Singleton обновленным ViewModel.MVVM Связывание с выставленным свойством

+0

Опубликовать некоторые фрагменты кода, особенно свойство foo.Current, текст, который вы хотите связать, и привязки xaml. –

+0

Реализация INotifyPropertyChanged является правильным способом для обновления интерфейса при обновлении свойств ViewModel. Не имеет значения, как вы получаете экземпляр ViewModel через конструктор или через Singleton foo.Current. – Andris

ответ

2

Там нет «лучшего» пути в текущей ситуации, следующие опции:

  1. Определить свойство в вашем ViewModel и передать, что ViewModel к вашему одноточечному. Синглтон должен изменить соответствующее свойство вместе с его собственным.
  2. Перемещение свойств из синглтона в ViewModel или включать синглтон в самом ViewModel
  3. Создания события для изменения свойства на одноэлементном
  4. Наследовать синглтон из INotifyPropertyChanged и виртуальная машина прикрепляется к PropertyChanged случае одноплодный. И контролируйте свое имя.
  5. ...

Самый простой один будет первый вариант, хотя там может быть некоторые архитектурные несоответствия в вашем приложении, которые должны быть обработаны.

+0

спасибо !! Я реализовал INotiftPropertyChanged на singleton и сделал обработчик событий на моем ViewModel. –

+0

Добро пожаловать :) –

0

Если я вас хорошо понимаю, я бы использовал шаблон Observer.

Смежные вопросы