PropertyMetadata 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
등록된 조건을 포함하여 종속성 속성의 동작 측면을 정의합니다.
/// [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
- 상속
- 특성
예제
이 예제에서는 DependencyProperty기본값을 보고하는 PropertyMetadata
만드는 PropertyMetadata(Object) 생성자를 호출합니다. 그런 다음 PropertyMetadata
RegisterAttached 호출될 때 연결된 속성 등록에 사용됩니다.
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
인스턴스 정의는 사용자 지정 종속성 속성을 정의하는 시나리오의 일부입니다. 정보 및 예제는 사용자 지정 종속성 속성참조하세요.
PropertyMetadata
값은 종속성 속성 동작의 두 가지 측면을 나타냅니다.
- 소유자 형식이 값을 구체적으로 초기화하거나 사용자 코드 또는 다른 메커니즘에 의해 값이 설정되지 않는 한 속성 값으로 사용되는 기본값을 제공합니다.
- 종속성 속성 시스템에서 종속성 속성이 변경되었음을 감지하는 경우 호출되는 콜백을 참조합니다.
일반적으로 종속성 속성은 이러한 동작 중 하나 또는 둘 다를 원하는 경우에만
PropertyMetadata
값이 필요합니다. 그렇지 않으면 종속성 속성이 종속성 속성 시스템에 등록될 때propertyMetadata
매개 변수에 대해null
값을 전달할 수 있습니다. 자세한 내용은 DependencyProperty.Register참조하세요.
PropertyMetadata
속성 변경 콜백 참조를 포함하는 경우 해당 메서드는 해당 PropertyMetadata
적용되는 DependencyProperty 식별자를 노출하는 클래스의 정적 메서드여야 합니다. 이 메서드를 작성하는 방법은 사용자 지정 종속성 속성 및 PropertyChangedCallback 대리자의 참조 항목에도 설명되어 있습니다.
메모
만든 PropertyMetadata
인스턴스에는 콜백을 찾거나 콜백의 메서드 이름을 확인하는 데 사용할 수 있는 속성이 없습니다. 해당 정보는 종속성 속성의 구현 세부 정보로 간주되며 종속성 속성 시스템 자체만 해당 메서드를 호출할 수 있어야 합니다.
PropertyMetadata 값 인스턴스화
PropertyMetadata
인스턴스를 인스턴스화할 수 있는 두 가지 메서드, 즉 생성자와 정적 PropertyMetadata.Create 메서드가 있습니다. 이러한 각 메서드에는 여러 서명이 있습니다. 생성자를 사용하는 것이 더 일반적입니다. 그러나 종속성 속성의 기본값 메커니즘을 스레드로부터 안전하게 보호하려면 PropertyMetadata.Create 사용해야 합니다. 자세한 내용은 사용자 지정 종속성 속성 항목의 "사용자 지정 종속성 속성에 대한 속성 메타데이터" 섹션을 참조하세요.
생성자
PropertyMetadata(Object, PropertyChangedCallback) |
속성 기본값 및 콜백 참조를 사용하여 PropertyMetadata 클래스의 새 인스턴스를 초기화합니다. |
PropertyMetadata(Object) |
속성 기본값을 사용하여 PropertyMetadata 클래스의 새 인스턴스를 초기화합니다. |
속성
CreateDefaultValueCallback |
기본 속성 값을 제공하는 콜백 메서드에 대한 참조를 가져옵니다. |
DefaultValue |
종속성 속성의 기본값을 가져옵니다. |
메서드
Create(CreateDefaultValueCallback, PropertyChangedCallback) |
종속성 속성의 기본값을 설정하는 콜백과 속성 변경 콜백을 지정하여 PropertyMetadata 값을 만듭니다. |
Create(CreateDefaultValueCallback) |
종속성 속성의 기본값을 설정하는 콜백을 지정하여 PropertyMetadata 값을 만듭니다. |
Create(Object, PropertyChangedCallback) |
PropertyMetadata 값을 만들고 종속성 속성에 대한 고정 기본값 및 속성 변경 콜백을 지정합니다. |
Create(Object) |
종속성 속성에 대한 고정 기본값을 지정하여 PropertyMetadata 값을 만듭니다. |