私はWPFとMVVMを使い始めています。コード プロジェクトの記事を読んでいるところです。これは非常に興味深いもので、すぐに始めることができます。私は Entity Framework を使用しており、すべてのエンティティを ListView にリストできて満足しています。
ビューモデルでルックアップを正しく実装する方法、または新しいモデルを作成する方法に興味があります。人の単純なケースを取ります。データ構造は次のようになります。
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime DateOfBirth { get; set; }
public Toy FaveToy { get; set; }
}
public class Toy
{
public string Name { get; set; }
public string Model { get; set; }
public string Manufacturer { get; set; }
}
リスト ビューに、FirstName、LastName、DateOfBirth、Fave Toy、Manufacturer の列を表示したいと考えています。
Toy フィールドは Name + " " + Model in を組み合わせた文字列になります。
したがって、リンクした例のコードの一部を考えると (例のために Person クラスをノックアップしました):
ビューの基底クラス
public abstract class ViewModelBase : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Person ビューの実装
public class PersonViewModel : ViewModelBase
{
private ObservableCollection<Person> _Person;
public PersonViewModel()
{
_Person = new ObservableCollection<Person>();
Entities context = new Entities();
foreach(var person in context.Person.ToList())
{
_Person.Add(person);
}
}
public ObservableCollection<Person> Person
{
get
{
return _Person;
}
set
{
_Person = value;
this.OnPropertyChanged("Person");
}
}
}