using System;
namespace Test
{
public interface IDataModel
{
int Count {
get; set; }
event EventHandler CountChanged;
}
}
using System;
namespace Test
{
public class DataModel : IDataModel
{
public DataModel()
{
}
private int count;
public int Count
{
get {
return count; }
set {
count = value; OnCountChanged(); }
}
public event EventHandler CountChanged;
protected virtual void OnCountChanged()
{
CountChanged?.Invoke(this, EventArgs.Empty);
}
}
}
using System.ComponentModel;
namespace Test
{
public interface IDataModel2
{
int Count {
get; set; }
event PropertyChangedEventHandler PropertyChanged;
}
}
using System.ComponentModel;
namespace Test
{
public class DataModel2 : INotifyPropertyChanged, IDataModel2
{
public DataModel2()
{
}
private int count;
public int Count
{
get {
return count; }
set {
count = value; NotifyPropertyChanged("Count"); }
}
private void NotifyPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public event PropertyChangedEventHandler PropertyChanged;
}
}
using System.ComponentModel;
namespace Test
{
public interface IStudent
{
string Name {
get; set; }
int Age