【C#】INotifyPropertyChangedを実現する3つの方法
4154 ワード
class StudentItemViewModel:INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public Student Student { get; set; }
private bool _isSelected;
public bool IsSelected
{
get { return _isSelected; }
set
{
_isSelected = value;
this.PropertyChanged(this,new PropertyChangedEventArgs("IsSelected"));
//NotifyPropertyChanged("IsSelected");
}
}
private void NotifyPropertyChanged(string Name)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(Name));
}
}
}
class NotifyCationObject : INotifyPropertyChanged
{
private string GetPropertyName<T>(Expression<Func<T>> action)
{
var expression = (MemberExpression)action.Body;
return expression.Member.Name;
}
protected void NotifyPropertyChanged<T>(Expression<Func<T>> action)
{
string name = GetPropertyName<T>(action);
NotifyPropertyChanged(name);
}
private event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string Name)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(Name));
}
}
}