ファイルから顧客のコレクションを読み取るか、顧客のコレクションを作成し、それをメイン モデル ビューに戻して ObservableCollection に変換する、CustomerService というクラスがあります。CustomerService と ObservableCollection の項目が同期していることを確認するためのベスト プラクティスは何ですか。RaisePropertyChanged に応答するように CustomerService オブジェクトを接続できると思いますが、これは WPF コントロールでのみ使用するためのものではありませんか? より良い方法はありますか?
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;
}
}