새로운 C#을 5.0 버전처럼 뭔가에서 INotifyPropertyChanged 구현에서 "마법 문자열"을 제거하기 위해 도입MVVM CallerMemberName와 "마법 문자열"
OnPropertyChanged();
방법은 정의에 의한 CallerMemberName 가능하다 : 또한 m은
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
{ ... }
이다
uch는 "마법 문자열"방식보다 친숙한 리팩토링 방식과 람다 식보다 빠릅니다.하지만 한 세트의 접근 자에서 OnPropertyChanged를 여러 번 호출 할 수 있는지 궁금합니다. 예를 들어, 우리는 다음과 같이 원한다면 :
public int Width
{
get
{
return width;
}
set
{
width = value;
OnPropertyChanged("Width");
OnPropertyChanged("Height");
}
}
우리가 CallerMemberName 방법으로이 작업을 수행하고 "마법 문자열"와 람다 표현식을 사용하여 피할 수있는 방법
? 그러나 내가 한, 내가 "마법 문자열"를 다루는 일부 영리한 방법을 간과 그래서 아마 MVVM에 새로운 오전
public string Error
{
get;
private set;
}
public string this[string columnName]
{
get
{
if (columnName == "Name")
{
if (String.IsNullOrWhiteSpace(Name))
Error = "Name cannot be null or empty.";
else
Error = null;
}
return Error;
}
}
: 나는 또한 궁금
는 우리가 어떻게 IDataError 정보에서 "마법 문자열"을 사용하여 피할 수있다 약간 연구하고 아무것도 찾지 못했습니다.
왜 너비가 변하기 때문에 높이가 변경되었다고 말하고 싶습니까? 실제로 "크기"와 같은 것을 의미 했습니까? –
이것은 단지 예일 뿐이지 만 때로는 하나의 속성이 다른 속성에 의존 할 수 있습니다. 예를 들어 너비가 항상 높이 * 2 인 경우를 예로들 수 있습니다. – Overpain