Open/Close Menu Yapı Taahhüt ve İnş. Tic. Ltd. Şti.

Size Özel Tekliflerimiz?
İletişime Geçin! »

Bizi Arayın:
0216 537 19 46/47

이제 이러한 종속성 속성을 구현하여 데이터 변경에 대한 강력한 알림을 제공하는 방법에 대해 살펴보겠습니다. PostSharp 코드 계약(계약 참조)은 종속성 속성의 값을 확인하는 편리한 방법을 제공합니다. 종속성 속성에 유효성 검사를 추가하려면 해당 속성에 계약 특성을 적용하기만 하면 됩니다. XAML의 x:Type 태그 확장에는 C#의 typeof()와 유사한 기능이 있습니다. <Style TargetType = "{x:Type Button}"과 같은 개체의 형식을 사용하는 특성을 지정할 때 사용되며, 다음 예제에서는 바인딩을 표시하고 바인딩의 소스를 지정하는 DataContext 속성을 설정합니다. 이전 바인딩 예제입니다. 하위 개체의 후속 바인딩은 원본을 지정할 필요가 없으며 상위 StackPanel 개체의 DataContext에서 상속된 값을 사용할 수 있습니다. (또는 자식 개체는 바인딩에서 자체 DataContext 또는 소스를 직접 지정하고 해당 바인딩의 데이터 컨텍스트에 상속된 값을 의도적으로 사용하지 않도록 선택할 수 있습니다.) 그리고 종속성 개체는 무엇입니까? 다시 말하지만, 공식 문서에 따르면: 종속성 속성은 응용 프로그램에서 사용할 때 모든 종류의 혜택을 제공합니다. 종속성 속성은 다음과 같은 시나리오에서 CLR 속성을 통해 사용할 수 있습니다 – 이제 사용자 정의 컨트롤을 만들 수 있습니다. 여기서는 보기 없는 컨트롤을 만들고 TextBox 컨트롤을 확장하고 있습니다. false를 반환하면 ArgumentException이 throw됩니다.

이 예제 요청에서 데이터가 DateTime의 인스턴스임을 지정합니다. 위의 코드가 컴파일되고 실행되면 다음 MainWindow를 얻을 수 있습니다. 마우스가 단추 위에 있으면 단추의 전경 색상이 변경됩니다. 마우스가 단추를 벗어나면 원래 색상으로 다시 변경됩니다. WPF는 CLR 속성에 대해 종속성 속성을 집합적으로 호출할 수 있는 몇 가지 확장된 서비스를 제공했습니다. 종속성 속성은 애니메이션, 데이터 바인딩, 스타일 또는 시각적 트리 상속과 같은 외부 소스에 따라 값이 종속된 속성입니다. 이뿐만 아니라 종속성 속성에는 속성이 변경될 때 알림을 제공하는 기본 제공 기능, 데이터 바인딩 및 스타일 지정도 있습니다. . 속성 시스템 API GetValue 및 SetValue를 직접 호출할 수도 있습니다. 일반적으로 기존 속성을 사용하는 경우(래퍼가 더 편리하고 개발자 도구에 대한 속성에 더 잘 노출됨)하는 경우에는 필요하지 않지만 API를 직접 호출하는 것이 특정 시나리오에 적합합니다.

CLR “래퍼”: 속성에 대한 실제 get 및 set 구현입니다. 이러한 구현은 GetValue 및 SetValue 호출에서 종속성 속성 식별자를 통합하여 WPF 속성 시스템을 사용하여 속성에 대한 백업을 제공합니다. 각 WPF 컨트롤은 정적 DependencyProperty 클래스에 DependencyProperties 집합을 등록합니다. 각 키는 유형별로 고유해야 하는 키와 콜백 및 기본값을 포함하는 메타데이터로 구성됩니다. 각 DependencyProperty 변경 알림, 값 강제 변환 및 유효성 검사에 대 한 콜백을 제공 합니다. 이러한 콜백은 종속성 속성에 등록됩니다. ValidationState가 변경되면 새 종속성 속성의 데이터 바인딩에 PropertyChanged 이벤트가 표시되고 ControlTemplate 트리거 바인딩에 알림이 표시되고 에 대한 종속성 속성 값에 따라 시각적 유효성 검사 이미지가 변경됩니다. 제어할 수 있습니다.

종속성 속성의 값을 설정하면 개체의 필드에 저장되지 않고 기본 클래스 DependencyObject에서 제공하는 키 및 값 사전에 저장됩니다. 항목의 키는 속성의 이름이며 값은 설정하려는 값입니다. 종속성 속성은 기존 컨트롤(lookless 상속)에 대한 기능을 확장하고, 사용자 컨트롤(템플릿), 동작 및 마크업 확장에 속성을 추가하여 상속 없이 기존 컨트롤을 추가하거나 수정하는 데 사용할 수 있습니다.