public class ViewModelBase : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = this.PropertyChanged;
if (handler != null)
{
var e = new PropertyChangedEventArgs(propertyName);
handler(this, e);
}
}
}
public class ViewClass : ViewModelBase
{
int _MyField;
public int MyField
{
get { return _MyField; }
set
{
if (_MyField != value)
{
_MyField = value;
base.OnPropertyChanged("MyField");
}
}
}
ObservableCollection<ViewClass> _Items;
public ObservableCollection<ViewClass> Items
{
get
{
if (_Items == null)
{
_Items = new ObservableCollection<ViewClass>();
}
return _Items;
}
}
}