문제

.NET (특히 WPF 컨텍스트)의 종속성 속성은 무엇입니까? 일반 부동산의 차이점은 무엇입니까?

도움이 되었습니까?

해결책

종속성 속성은 종속성에서 파생 된 클래스의 속성이며, 단순히 뒷받침 필드를 사용하여 값을 저장하는 대신에 특별한 도우미 방법을 사용합니다.

그들에 대한 가장 좋은 점은 그들이 데이터 바인딩을위한 모든 배관을 내장한다는 것입니다. 당신이 그들에게 무언가를 바인딩하면, 그들은 그들이 변경할 때 그것을 알립니다.

다른 팁

내가 도움이되고 잘 쓰여진 유일한 설명은 이것입니다. http://www.wpftutorial.net/dependencyproperties.html

기본적으로, 의존성 요법은 클래스의 필드에 대한 세터 / getter만이 아니라 런타임 동안 실제 값을 동적으로 검색한다는 점에서 일반 속성과 다릅니다. 그만큼 SetValue() DPS의 방법은 매우 간단하며 속성의 로컬 값을 제공 한 값으로 설정합니다. 그러나 당신이 시도 할 때 GetValue() 종속성 전문가에서 먼저 로컬 값을 찾습니다. 존재하지 않으면 (일반 속성과 달리 종속성 분류에서 생존 할 수있는 경우) 그러한 값을 찾을 때까지 논리적 UI 트리를 계속합니다. 프레임 워크가 로컬 값을 찾지 않고 트리 상단에 도달 한 경우 사전 정의 된 기본값을 속성 값으로 사용합니다.

이 방법을 사용하면 의존성 분류기가 사용자가 명시 적으로 설정 한 값 만 로컬로 저장되므로 의존성 전문가는 일반 속성보다 메모리를 덜 소비 할 수 있습니다.

위에서 언급 한 바와 같이, 의존성 전자 요법은 또한 XAML 코드에서 그것들에 바인딩하고 이들을 트리거 할 수있게 해주었다.

나는 내가 모호함을 정리할 수 있기를 바랍니다. :)

http://techpunch.wordpress.com/2008/09/25/wpf-wf-what-is-a-dependency-property/ WF와 WPF의 맥락에서 의존성 속성에 대한 좋은 설명을 제공합니다.

발췌 :

핵심 포인트 - 종속성 속성의 값이 해결됩니다.

모든 속성과 마찬가지로 의존성 속성의 궁극적 인 목표는 상태를 관리하는 것입니다. 그러나 일반 .NET 속성과 달리 로컬 속성 값은 인스턴스 변수에 저장되지 않습니다.

대신, 종속성 속성은 종속성 속성 프레임 워크에 등록되며 기본 속성 값이 해결됩니다. 즉, 값은 속성 등록에 의해 정의 된 규칙에 따라 종속성 속성 프레임 워크에 의해 결정됩니다.

유추를 통한 코드없는 설명 (~ 5 분)

이야기가 마음에 들지 않으면 자신을 구하십시오 (~ 5 분)

우리는 몇 가지 개념을 살펴볼 것입니다.

  • 트리 / 속성 값 상속 및
  • 다중 제공자 지원
  • 알림을 변경하십시오

(a) 값 해결 / 속성 값 상속

인간 유전자의 예를 사용하여 개념을 설명합시다.

모든 사람은 다소 동일합니다

인간은 그들과 관련된 많은 정보를 가지고 있습니다. 수백, 수천 개의 데이터가 귀하와 관련이 있습니다.

  • 손가락이 얼마나 많은지,

  • 얼마나 많은 발가락,

  • 당신이 가진 BRCA2 유전자 수

우리가 해결하고 싶은 문제는 무엇입니까?

우리는 모든 정보를 무너 뜨리지 않고 우리 자신에 대해 우리에게 묻는 사람들에게 똑바로 답변 할 수 있기를 원합니다.

문제는 다음과 같습니다. 어떻게 모든 것을 기억할 수 있습니까? 글쎄, 원래 사람들은이 물건을 모두 쓰기 시작했지만 곧 그들은 약 10 권의 옐로우 페이지를 가지고 있어야한다는 것을 깨달았습니다. 그 모든 질문에 대답하십시오.

해결책 : 공통 정보를 한 곳에 저장하십시오

그래서 누군가가 밝은 아이디어를 가지고있었습니다. 그들은 대부분의 시간에 정보가 동일하다는 것을 알아 차렸다. 예를 들어 대부분의 사람들은 다음과 같습니다.

  • 하나의 마음

  • 한 얼굴 등

  • 3 개의 BRCA2 유전자

모든 사람이 뒷주머니에 약 30 파운드의 종이를 가지고 다닐 필요는 없습니다. 해당 모든 정보를 저장할 수 있습니다 한 곳, 중앙 도서관에서. 사람들은 그 정보를 가지고 다니면서 부담을받지 않고 자유롭게 걸을 수 있습니다.

그러나 항상 예외가 있습니다 .... 모든 사람이 동일한 혈액형이나 머리에 같은 수의 모낭을 가진 것은 아닙니다. 표준과의 차이 나 예외가 있다면, 당신은 책 전체 선반 가치가 아닌 뒷주머니 (즉, 사전)에서 당신과 함께 예외를 가지고 다니게됩니다. 대부분의 경우 사람들은 거의 동일합니다. 그들은 같은 가치를 공유하며 거의 변화가 거의 없습니다. 백 포켓에 기록 된 예외가없는 경우 면접관을 공통 저장소에 저장된 데이터로 간단히 참조 할 수 있습니다.

예 : 기자 인터뷰 도널드 트럼프 대통령 **

예제로 이것을 시도해 봅시다.

우리는 사람의 사례를 가지고 있습니다 : Donald Trump. 뉴스 기자가 존경받는 대통령에게 몇 가지 질문을하고 있습니다.

"트럼프 대통령 씨, 얼마나 많은 HIF1A 유전자가 있습니까?"

돈은 뒷주머니를 확인합니다. 그가 얼마나 많은 유전자를 가지고 있는지에 대해서는 아무것도 나열되어 있습니다. 그래서 그는 단순히 기자에게 다른 사람들이 가진 기본 번호가 있다고 말합니다. 트럼프는“다른 사람들과 동일합니다. "도서관에서 답변을 찾을 수 있습니다." 따라서 기자는 단순히 도서관으로 이동하여 특정 세부 사항에 대해 알아 봅니다.

“트럼프 대통령 씨, 얼마나 많은 얼굴이 있습니까?

이 값을 로컬로 해결할 수 있습니까? 트럼프의 뒷주머니에는 답이 있기 때문에이 값은 로컬로 해결되는 것처럼 보입니다. 2- 기자에게 즉시 반환됩니다.

가치 분해능 트리

실제로, 상황은 뒷주머니에 있거나 중앙 도서관에서 개최되는 대답보다 조금 더 복잡합니다. 동일한 정보를 저장할 수있는 많은 중간체 장소가 있으므로 "부동산의 가치를 해결하기위한 이상적인 후보자"가 될 것입니다. 따라서 뒷주머니에서 상황이 시작될 수 있다면 기자는 답을 얻기 위해 중간 위치를 올라가는 순서로 많은 중간 위치를 확인해야 할 수도 있습니다. 예를 들어, 기자는 다른 신문으로 시작한 다음 법원 문서로 시작할 수 있으며, 그 모든 것에 실패 할 수 있습니다. 답변이 없으면 답은 중앙 도서관에 포함 된 기본값입니다.

그것을 단순화하기 위해, 물건은 먼저 그 사람과 함께 해결 된 다음 위쪽으로 더 높고 높은 권위자들을 해결합니다. 결국 그 경우에 신 또는 스파게티 괴물로 끝납니다. 결국, 당신은 답을 얻을 때까지 계속 높아지고 더 높아집니다. 결국 모든 답변이 해결됩니다.

요약

요컨대, 종속성 속성은 경우와 같이 로컬 또는 UI 트리 위로 해결되는 속성입니다. 우리 가이 작업을 수행하는 이유는 UI 요소가 수백 및 수백 개의 속성을 가지고 있기 때문에 각각의 각각의 백업 필드로 저장하려면 곧 기억을 먹을 수 있기 때문입니다. 이러한 필드의 대부분은 절대 또는 거의 변하지 않기 때문에,이 필드를 뒷받침 필드로 보관할 필요가 없으며 나무를 올라가서 그 값을 해결할 수 있습니다.

마지막으로, 무료로 자동 변경 알림을 제공합니다.

물론, 비유는 약간 긴장되어 있지만 도움이되기를 바랍니다.

** (화재) 벽 트럼프가 약속 한 (화재) 벽을 기다리고 있습니다. Spamicans를 막아야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top