종속성 속성을 선택해야 하는 이유
마이크로소프트는 왜 반사와 어쩌면 속성을 사용하는 대신 종속성 속성과 종속성 개체를 만드는 길을 택했을까요?
이것은 제가 추론을 이해하는 데 도움이 되었습니다.
주요 차이점은 정규 분포의 값입니다.NET 속성은 클래스의 개인 멤버에서 직접 읽지만 DependencyObject에서 상속된 GetValue() 메서드를 호출하면 DependencyProperty 값이 동적으로 확인됩니다.
종속성 속성 값을 설정하면 개체 필드에 저장되지 않고 기본 클래스 DependencyObject에서 제공하는 키 및 값 사전에 저장됩니다.항목의 키는 속성의 이름이고 값은 설정할 값입니다.
종속성 속성의 이점은 다음과 같습니다.
메모리 설치 공간 감소
UI 컨트롤의 속성 중 90% 이상이 일반적으로 초기 값을 유지한다고 생각할 때 각 속성에 대한 필드를 저장하는 것은 엄청난 낭비입니다.종속성 속성은 인스턴스에 수정된 속성만 저장하여 이러한 문제를 해결합니다.기본값은 종속성 속성 내에 한 번 저장됩니다.
가치상속
종속성 속성에 액세스하면 값 확인 전략을 사용하여 값이 확인됩니다.로컬 값이 설정되지 않은 경우 종속성 속성은 값을 찾을 때까지 논리 트리를 탐색합니다.루트 요소에서 글꼴 크기를 설정하면 사용자가 값을 재정의하지 않는 한 아래의 모든 텍스트 블록에 적용됩니다.
변경 알림
종속성 속성에는 기본적으로 변경 알림 메커니즘이 있습니다.속성 메타데이터에 콜백을 등록하면 속성 값이 변경되었을 때 알림이 표시됩니다.이것은 데이터 바인딩에서도 사용됩니다.
시작: WPF 자습서.
종속성 속성은 반사 및 속성이 해결하는 것과는 다른 사용 시나리오를 해결합니다.
종속성 속성은 표준 속성이 처리할 수 없는 작업을 수행할 수 있는 일관된 단일 API를 제공합니다.
- 클래스를 사용하면 클래스당 한 번이 아닌 정적으로 생성되므로 클래스에서 오버헤드 없이 많은 속성을 제공할 수 있습니다.위해서
- 종속성 속성 시스템은 연결된 속성과 같은 것을 표준 종속성 속성으로 일관되게 처리합니다.
- 종속성 속성은 확인뿐만 아니라 변경 추적을 위한 깨끗한 API를 제공합니다.
- 종속성 속성은 속성 값 상속을 제공합니다.
- 종속성 속성은 데이터 바인딩 시 뛰어난 성능 이점을 제공합니다.
언급URL : https://stackoverflow.com/questions/1723756/why-dependency-properties
'programing' 카테고리의 다른 글
스프레드시트::구문 분석 Excel:: 스트림 파서 손실 (0) | 2023.04.28 |
---|---|
VBA를 사용하여 Excel 워크시트 숨기기 (0) | 2023.04.28 |
Wpf 텍스트 블록의 수직 텍스트 (0) | 2023.04.28 |
오류 발생 시 스크립트 종료 (0) | 2023.04.28 |
MVC3에서 Azure Blob 파일 다운로드하기 (0) | 2023.04.28 |