2009-07-29 2 views
0

UserControl에서 상속받은 컨트롤이 있다고 가정합니다 (따라서 수퍼 클래스 중 하나는 DependencyObject입니다). DependencyProperty을 사용하여 알림 문제를 해결하는 것은 매우 쉽습니다. INotifyPropertyChanged에는 약간의 구현이 필요하고 다른 옵션은 컨트롤의 상태를 수정하는 메서드 (예 : myControl.HideTextBox())를 생성하기 때문에 매우 쉽습니다. 이 문제를 해결할 수있는 몇 가지 옵션이 더 있지만 컨트롤이 이미 DependencyObject에서 상속 받았기 때문에 DependencyProperty이 더 확실한 방법 인 것처럼 보이지만 최적이 아닐 수도 있습니다.종속성 속성 사용 비용

의견이 있으십니까?

감사합니다.

답변

4

종속성 속성의 실제 기능은 변경 알림을 무료로 가져 오는 것이 아닙니다. 실제 기능은 종속성 속성 만 데이터 바인딩 대상이 될 수 있다는 것입니다. 이것은 속성이 종속성인지 아닌지를 결정할 때 맨 먼저 고려해야 할 사항입니다.

컨트롤의 경우 거의 모든 속성이 바인딩 가능해야하며 종속성이 있어야합니다.

+0

그래서 저는 일종의 혼란 스럽습니다. 당신은 이것이 DependencyProperties의 실제 기능이 아니라고 말했지만, 거의 모든 속성은 바인딩 가능해야하므로 의존성이 있어야한다고 말했습니까? 제 모범을 보이기 위해 사용하는 것이 좋습니까? – Carlo

+0

내 대답의 두 번째 단락을 참조하십시오. 나는 당신이 당신의 통제와 재산에 대해 더 많이 말하지 않는 한, 당신이 의심스러워하는 것에 대해 정말 많이 말할 수는 없습니다. 또한 스톡 WPF 컨트롤에서 종속성을 확인하는 것이 좋습니다 (거의 모든 것을 찾을 수 있습니다). –