INotifyPropertyChanged를 올바르게 구현하는 쉬운 방법을 찾고 있습니다. 즉, PropertyChanged가 발생하면 실제로 정의 된 속성을 참조해야합니다. Microsoft의 새로운 CodeContract 도구로이 작업을 시도했지만 "CodeContracts : unproven"이 필요합니다. 여기 내 코드는 ...CodeContracts - "증명되지 않음"으로 INotifyPropertyChanged의 올바른 구현 시행
public sealed class MyClass : INotifyPropertyChanged
{
private int myProperty;
public int MyProperty
{
get
{
return myProperty;
}
set
{
if (myProperty == value)
{
return;
}
myProperty = value;
OnPropertyChanged("MyProperty");
}
}
private void OnPropertyChanged(string propertyName)
{
Contract.Requires(GetType().GetProperties().Any(x => x.Name == propertyName));
var handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
어쨌든이 코드를 사용할 수 있습니까?
정적 검사하지 않는 반사 계약의 유효성을 검사합니다. http://social.msdn.microsoft.com/Forums/en-US/codecontracts/thread/37e28a50-bf64-4b02-b384-f55117735690/ – hwiechers