PropertyMetadata 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
등록된 조건을 포함하여 종속성 속성의 동작 측면을 정의합니다. 종속성 속성에 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
- 상속
- 특성
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 값을 만듭니다. |