DependencyProperty.ReadOnly 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
이 DependencyProperty 인스턴스에서 식별된 종속성 속성이 읽기 전용 종속성 속성인지 여부를 나타내는 값을 가져옵니다.
public:
property bool ReadOnly { bool get(); };
public bool ReadOnly { get; }
member this.ReadOnly : bool
Public ReadOnly Property ReadOnly As Boolean
속성 값
true종속성 속성이 읽기 전용인 경우 그렇지 않으면 . false
예제
다음 예제에서는 다양한 종속성 속성 필드에서 기본 메타데이터 및 종속성 속성 식별자 속성을 가져오고 이 정보를 사용하여 테이블을 채워 "메타데이터 브라우저"를 구현합니다.
pm = dp.GetMetadata(dp.OwnerType);
MetadataClass.Text = pm.GetType().Name;
TypeofPropertyValue.Text = dp.PropertyType.Name;
DefaultPropertyValue.Text = (pm.DefaultValue!=null) ? pm.DefaultValue.ToString() : "null";
HasCoerceValue.Text = (pm.CoerceValueCallback == null) ? "No" : pm.CoerceValueCallback.Method.Name;
HasPropertyChanged.Text = (pm.PropertyChangedCallback == null) ? "No" : pm.PropertyChangedCallback.Method.Name;
ReadOnly.Text = (dp.ReadOnly) ? "Yes" : "No";
pm = dp.GetMetadata(dp.OwnerType)
MetadataClass.Text = pm.GetType().Name
TypeofPropertyValue.Text = dp.PropertyType.Name
DefaultPropertyValue.Text = If((pm.DefaultValue IsNot Nothing), pm.DefaultValue.ToString(), "null")
HasCoerceValue.Text = If((pm.CoerceValueCallback Is Nothing), "No", pm.CoerceValueCallback.Method.Name)
HasPropertyChanged.Text = If((pm.PropertyChangedCallback Is Nothing), "No", pm.PropertyChangedCallback.Method.Name)
[ReadOnly].Text = If((dp.ReadOnly), "Yes", "No")
설명
읽기 전용 종속성 속성은 메서드가 아닌 메서드를 RegisterReadOnly 호출하여 속성 시스템 내에 등록됩니다 Register . 연결된 속성은 읽기 전용으로 등록할 수도 있습니다. 를 참조하세요 RegisterAttachedReadOnly.
읽기 전용 종속성 속성에는 메타데이터 재정의 DependencyPropertyKey 또는 값 설정과 같은 메타데이터 작업을 수행하기 위해 식별자가 아닌 식별자가 필요합니다DependencyProperty. 식별자를 노출하는 다른 API 또는 호출을 DependencyProperty 통해 식별자 컬렉션을 GetLocalValueEnumerator 가져온 경우 해당 종속성 속성 식별자를 입력 매개 변수로 호출 ReadOnly 하거나 SetValue 사용하기 전에 값을 확인 OverrideMetadata 하여 식별자가 나타내는 종속성 속성이 읽기 전용이 아닌지 확인합니다. 값 ReadOnly 이 true 종속성 속성에 있는 경우 메타데이터 또는 식별자에서 DependencyPropertyKey 해당 종속성 속성의 식별자에 대한 참조 DependencyProperty 를 가져오는 프로그래밍 방식의 방법이 없습니다. 읽기 전용 종속성 속성에 대해 호출 SetValue(DependencyPropertyKey, Object) 하려면 식별자를 정적 필드로 사용할 수 있어야 합니다.
사용자 지정 종속성 속성을 만들고 읽기 전용으로 등록하는 경우 CLR 래퍼 속성에 대한 get 접근자만 정의해야 합니다. 그렇지 않으면 클래스에는 백업 종속성 속성에 대한 액세스와 비교하여 속성 래퍼에 대해 혼동되는 개체 모델이 있습니다. 자세한 내용은 사용자 지정 종속성 속성 또는 Read-Only 종속성 속성을 참조하세요.