PropertyMetadata 클래스

정의

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

/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 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(Microsoft.UI.Xaml.WinUIContract), 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
특성

예제

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

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);
    }
}

설명

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

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

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

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

참고

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

PropertyMetadata 값 인스턴스화

instance 인스턴스화할 수 있는 PropertyMetadata 두 가지 메서드, 즉 생성자와 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 값을 만듭니다.

적용 대상

추가 정보