Прочитайте немного о IObservable, и мне интересно, что шаблон даст мне (если что-нибудь) в моем сценарии.
У меня есть приложение WPF с сеткой данных, сетка привязана к IObservableколлекция Product.
ProductList.DataContext = AppState.Current.Products
... где AppState.Current.Products возвращает ObservableCollection<Product>
Мои цели:
- Отслеживание списка измененныхобъекты
- Информировать пользовательский интерфейс о том, что объект изменился, чтобы я мог включить кнопку сохранения
Мой класс продукта выглядит примерно так ...
public class Product
{
string _desc;
public string Description
{
get { return _desc; }
set { _desc = value; }
}
}
Теперь, если я обновлю столбец описания в строке в моей сетке, вызывается установщик для Description
.Таким образом, я мог бы записать здесь некоторый код, чтобы установить флаг Dirty
для своего продукта, который я мог бы затем использовать для запроса списка измененных продуктов, которые необходимо сохранить в БД.
Я думаю, что яМожно ли использовать IObservable для достижения моей второй цели - информирования пользовательского интерфейса об изменении строки?Или есть более простой метод, такой как какое-либо свойство в сетке?
Если я хочу использовать IObservable, я видел примеры, когда продукт выставляет события, на которые можно подписаться.Однако я не хочу подключать обработчики событий ко всем моим объектам.Мне нужно что-то, что обычно говорит мне, когда какой-либо объект в коллекции изменился.
Кроме того, как бы я подключил это уведомление к своему пользовательскому интерфейсу.