Чтение статьи Джоша Смита о MVVM его модель представления CustomerViewModel
реализует INotifyPropertyChanged
, но не базовый класс Customer
.
Я вижу только один (возможный) способ заставить уведомление об изменении работать в этом случае - вносить изменения только в CustomerViewModel
, а не в Заказчик
. В таком случае, должна ли внутренняя логика моей программы просто работать с ViewModels? Это кажется довольно странным, в конце концов, это Посмотреть Модели.
Кто-нибудь может немного прояснить это?
Спасибо!
Уточнение:
Скажите, что у меня есть модель Цитата и список цитат.
public class Quote
{
public string Name { get; set; }
public decimal Value { get; set; }
}
public QuoteViewModel : INotifyPropertyChanged
{
private Quote quote;
public event EventHandler PropertyChanged;
public decimal Value
{
get { return quote.Value; }
set
{
quote.Value = value;
PropertyChanged("Value");
}
}
}
Теперь, если Quote изменяется в результате опроса веб-службы фоновым потоком, пользовательский интерфейс не будет уведомлен об этом, поскольку Quote не реализует INotifyPropertyChanged, если все части системы не используют ViewModel?