Есть ли способ связать свойство виртуальной машины с любым свойством singleton (свойство статического ресурса, свойство в службе singleton ...) таким образом, что нам не нужно использовать IMessenger или обрабатывать SingletonServiceResolved OnPropertyChanged?Связывание с одноэлементным свойством
Мне кажется, что я грязный для меня (даже если он находится в базовом классе), чтобы каждое действие обрабатывало изменения в моем одноименном Clock Property.
public class ClockService : ObservableObject, IClockService {
private DateTime _clock;
public DateTime Clock {
get{ return _clock;}
set { _clock = value; RaisePropertyChanged("Clock"); }
}
}
public class SomeViewModel : BaseViewModel {
private IClockService _clockService;
private IMvxMessenger _messenger;
public SomeViewModel(IClockService clockService, IMvxMessenger messenger) {
_clockService=clockService;
_messenger = messenger;
//trying to avoid
clockService.PropertyChanged += OnClockServicePropertyChanged;
}
public DateTime MyClock {
get{return _clockService.Clock;}
}
private OnClockServicePropertyChanged(...) {
if(e.PropertyName=="Clock") RaisePropertyChanged("Clock");
}
}
Проблема с этим решением является то, что UI никогда не будет PropertyChanged ... так что не будет обновить. Я спрашиваю, есть ли какой-то способ под капотом, который поможет мне избежать обработки EventSubscription (или messageSubscription) – ozapa
Отредактировано после вашего комментария - но на самом деле я был бы осторожен в отношении использования термина «Синглтон» здесь, поскольку я думаю, что это может запутать другие - «Синглтон» довольно широко понимается как «только один экземпляр когда-либо создан» - например см. http://en.wikipedia.org/wiki/Singleton_pattern - обычно не понимают, что есть «текущий» экземпляр (по моему опыту). – Stuart
Я не указал, но IClockService (в этом примере) во время инициализации разрешен как singleton by CreatableTypes(). EndingWith («Сервис»). AsInterfaces(). RegisterAsSingleton(); поэтому есть только один экземпляр ClockService и свойство Clock. Я что-то упускаю? – ozapa