몇 가지 클래스를 작성 중이며 INotifyPropertyChanged을 구현하여 해당 클래스를 모두 "데이터 바인딩 준수"(WPF 또는 아마도 더 희귀 한 WinForms)로 만들고 싶습니다.동일한 이벤트 호출자 다시 구현
문제는 반복되는 코드입니다. 나는 실제로 똑같은 방법을 반복해서 복사하여 붙여 넣는다 (나는 농담하지 않는다).
protected void OnPropertyChanged([CallerMemberName] String propertyName = null)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
나는 잠시 동안이 문제를했지만, 오늘 구체적으로는 또 다시 일어나고 유지, 그래서 나는 당신이 솔루션 나를 도울 수 있기를 바랍니다. 이 방법을 사용하는 클래스가 거의 12 개이고 코드 조각을 반복하는 것을 정말 싫어합니다.
구현할 기본 클래스를 만들려고했는데 (아마 NotifyPropertyChangedObject
이라는 이름을 쓰겠습니다) 실제로는 다중 상속없이 클래스를 제한한다는 잘못된 생각 일 수 있습니다.
또한 확장 메서드를 생각했지만 protected
메서드로 범위를 지정하고 싶습니다. 따라서이 메서드도 작동하지 않습니다.
이 문제를 해결하기 위해 수행 할 수있는 작업은 무엇입니까?
.NET 클래스는 어떻습니까? 나는 그 (것)들을 필요로하고, 나는 그 (것)들을 나의 기본적인 종류를 상속하게 할 수 없다. – MasterMastic
어떤 .Net 클래스에 대해 이야기하고 있습니까? 뷰 (Window, UserControl, Button)와 관련이 있다면 필요할 때 종속성 프로퍼티를 하위 클래스로 추가합니다. 나는 심지어 그들에 INPC를 구현하지 않는다. – Viv
나는 그 반대의 정확한 이야기이다. 뷰 클래스 또는 데이터 바인딩과 관련이없는 클래스. (간단히 말해서, 변경 될 때 통지하지 않는 클래스). 이 클래스에서 상속받을 수 있고 내 질문에서이 메서드를 반복하지 않고 내 (확장 된) 필드가 변경된 경우에도 어떻게 알릴 수 있습니까? 그게 내 질문에 관한 전부입니다. 그래서 나는 아직 당신의 대답을 받아들이지 않았습니다. 그럼에도 불구하고 환상적입니다. BTW 할 수없는 경우, 그 대답도 될 것입니다. – MasterMastic