다음을 통해 공유


PropertyMetadata 클래스

정의

등록된 조건을 포함하여 종속성 속성의 동작 측면을 정의합니다. 종속성 속성에 PropertyMetadata를 사용하는 방법에 대한 자세한 내용은 사용자 지정 종속성 속성을 참조하세요.

/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class PropertyMetadata
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class PropertyMetadata
Public Class PropertyMetadata
상속
Object IInspectable PropertyMetadata
특성

Windows 요구 사항

디바이스 패밀리
Windows 10 (10.0.10240.0에서 도입되었습니다.)
API contract
Windows.Foundation.UniversalApiContract (v1.0에서 도입되었습니다.)

예제

다음은 DependencyProperty의 기본값을 보고하는 PropertyMetadata를 만드는 PropertyMetadata(Object) 생성자를 호출하는 예제입니다. 그런 다음 RegisterAttached 가 호출될 때 PropertyMetadata가 연결된 속성 등록에 사용됩니다.

public abstract class AquariumServices : DependencyObject
{
    public enum Buoyancy {Floats,Sinks,Drifts}

    public static readonly DependencyProperty BuoyancyProperty = DependencyProperty.RegisterAttached(
      "Buoyancy",
      typeof(Buoyancy),
      typeof(AquariumServices),
      new PropertyMetadata(Buoyancy.Floats)
    );
    public static void SetBuoyancy(DependencyObject element, Buoyancy value)
    {
        element.SetValue(BuoyancyProperty, value);
    }
    public static Buoyancy GetBuoyancy(DependencyObject element)
    {
        return (Buoyancy)element.GetValue(BuoyancyProperty);
    }
}
Public Class AquariumServices
    Inherits DependencyObject
    Public Enum Buoyancy
        Floats
        Sinks
        Drifts
    End Enum

    Public Shared ReadOnly BuoyancyProperty As DependencyProperty = _
          DependencyProperty.RegisterAttached(
          "Buoyancy", _
          GetType(Buoyancy), _
          GetType(AquariumServices), _
          New PropertyMetadata(Buoyancy.Floats))


    Public Sub SetBuoyancy(element As DependencyObject, value As Buoyancy)
        element.SetValue(BuoyancyProperty, value)
    End Sub
    Public Function GetBuoyancy(element As DependencyObject) As Buoyancy
        GetBuoyancy = CType(element.GetValue(BuoyancyProperty), Buoyancy)
    End Function
End Class

설명

PropertyMetadata instance 정의는 사용자 지정 종속성 속성을 정의하는 시나리오의 일부입니다. 정보 및 예제는 사용자 지정 종속성 속성을 참조하세요.

PropertyMetadata 값은 종속성 속성 동작의 두 가지 측면을 나타냅니다.

  • 소유자 형식이 값을 구체적으로 초기화하거나 값이 사용자 코드 또는 기타 메커니즘에 의해 설정되지 않는 한 속성의 값으로 사용되는 기본값을 제공합니다.
  • 종속성 속성 시스템에서 종속성 속성이 변경되었음을 감지하는 경우 호출되는 콜백을 참조합니다. 일반적으로 종속성 속성은 이러한 동작 중 하나 또는 둘 다 원하는 경우에만 PropertyMetadata 값이 필요합니다. 그렇지 않으면 종속성 속성이 종속성 속성 시스템에 등록된 경우 propertyMetadata 매개 변수에 대해 null 값을 전달할 수 있습니다. 자세한 내용은 DependencyProperty.Register를 참조하세요.

PropertyMetadata에 속성 변경 콜백 참조가 포함된 경우 해당 메서드는 해당 PropertyMetadata가 적용되는 DependencyProperty 식별자를 노출하는 클래스의 정적 메서드여야 합니다. 이 메서드를 작성하는 방법은 사용자 지정 종속성 속성PropertyChangedCallback 대리자의 참조 항목에 설명되어 있습니다.

참고

만든 후 PropertyMetadata instance 콜백을 찾거나 콜백의 메서드 이름을 확인하는 데 사용할 수 있는 속성이 없습니다. 해당 정보는 종속성 속성의 구현 세부 정보로 간주되며 종속성 속성 시스템 자체만 해당 메서드를 호출할 수 있어야 합니다.

PropertyMetadata 값 인스턴스화

PropertyMetadata instance 인스턴스화할 수 있는 두 가지 메서드, 즉 생성자와 static PropertyMetadata.Create 메서드가 있습니다. 이러한 각 메서드에는 여러 서명이 있습니다. 생성자를 사용하는 것이 더 일반적입니다. 그러나 종속성 속성의 기본값 메커니즘을 스레드로부터 안전하게 보호하려면 PropertyMetadata.Create 를 사용해야 합니다. 자세한 내용은 사용자 지정 종속성 속성 항목의 "사용자 지정 종속성 속성에 대한 속성 메타데이터" 섹션을 참조하세요.

생성자

PropertyMetadata(Object)

속성 기본값을 사용하여 PropertyMetadata 클래스의 새 instance 초기화합니다.

PropertyMetadata(Object, PropertyChangedCallback)

속성 기본값 및 콜백 참조를 사용하여 PropertyMetadata 클래스의 새 instance 초기화합니다.

속성

CreateDefaultValueCallback

기본 속성 값을 제공하는 콜백 메서드에 대한 참조를 가져옵니다.

DefaultValue

종속성 속성의 기본값을 가져옵니다.

메서드

Create(CreateDefaultValueCallback)

종속성 속성의 기본값을 설정하는 콜백을 지정하여 PropertyMetadata 값을 만듭니다.

Create(CreateDefaultValueCallback, PropertyChangedCallback)

종속성 속성의 기본값을 설정하는 콜백과 속성 변경 콜백을 지정하여 PropertyMetadata 값을 만듭니다.

Create(Object)

종속성 속성에 대한 고정 기본값을 지정하여 PropertyMetadata 값을 만듭니다.

Create(Object, PropertyChangedCallback)

종속성 속성의 고정 기본값과 속성 변경 콜백을 지정하여 PropertyMetadata 값을 만듭니다.

적용 대상

추가 정보