PropertyMetadata 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
등록된 조건을 포함하여 종속성 속성의 동작 측면을 정의합니다. 종속성 속성에 이 사용되는 방법에 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
- 상속
- 특성
예제
이 예제에서는 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 값을 만듭니다. |
적용 대상
추가 정보
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기