У меня есть класс CustomerService, который просто читает коллекцию клиентов из файла или создает его и передает его в Main Model View, где он превращается в ObservableCollection. Какая наилучшая практика для обеспечения того, чтобы элементы в CustomerService и ObservableCollection синхронизировались. Я предполагаю, что я могу подключить объект CustomerService для ответа на RaisePropertyChanged, но разве это не для использования с элементами управления WPF? Есть ли способ лучше?Как мне обновить DataService с помощью ObservableCollection?
using System;
public class MainModelView
{
public MainModelView()
{
_customers = new ObservableCollection<CustomerViewModel>(new CustomerService().GetCustomers());
}
public const string CustomersPropertyName = "Customers"
private ObservableCollection<CustomerViewModel> _customers;
public ObservableCollection<CustomerViewModel> Customers
{
get
{
return _customers;
}
set
{
if (_customers == value)
{
return;
}
var oldValue = _customers;
_customers = value;
// Update bindings and broadcast change using GalaSoft.MvvmLight.Messenging
RaisePropertyChanged(CustomersPropertyName, oldValue, value, true);
}
}
}
public class CustomerService
{
/// <summary>
/// Load all persons from file on disk.
/// </summary>
_customers = new List<CustomerViewModel>
{
new CustomerViewModel(new Customer("Bob", "")),
new CustomerViewModel(new Customer("Bob 2", "")),
new CustomerViewModel(new Customer("Bob 3", "")),
};
public IEnumerable<LinkViewModel> GetCustomers()
{
return _customers;
}
}