CoerceValueCallback 대리자

정의

종속성 속성 값이 다시 계산되거나 강제 형 변환이 특별히 요청될 때마다 호출되는 메서드에 대한 템플릿을 제공합니다.

public delegate System::Object ^ CoerceValueCallback(DependencyObject ^ d, System::Object ^ baseValue);
public delegate object CoerceValueCallback(DependencyObject d, object baseValue);
type CoerceValueCallback = delegate of DependencyObject * obj -> obj
Public Delegate Function CoerceValueCallback(d As DependencyObject, baseValue As Object) As Object 

매개 변수

d
DependencyObject

속성이 있는 개체입니다. 이 값은 콜백이 호출될 때 속성 시스템에서 전달합니다.

baseValue
Object

속성의 새 값입니다(강제 형 변환을 시도하기 전).

반환 값

Object

적절한 형식을 사용하여 강제 변환된 값입니다.

예제

다음 예제에서는이 콜백은 다른 속성의 값과 같은 다른 입력을 기준으로 종속성 속성의 저장 된 값을 강제 변환의 구현이 포함 되어 있습니다. 이 경우 콜백은 속성이 단추가 있는 셔츠 유형에 해당하는지 ShirtType 확인합니다. 단추가 있는 셔츠 유형에 대한 ButtonColor시작 기본 색을 설정하는 경우 셔츠 형식에 단추가 없으면 값을 다시 시작 값으로 강제 ButtonColor 변환하여 UI(표시되지 않음)가 유효한 선택 항목에서 해당 드롭다운을 제거합니다.

private static object CoerceButtonColor(DependencyObject d, object value)
{
    ShirtTypes newShirtType = (d as Shirt).ShirtType;
    if (newShirtType == ShirtTypes.Dress || newShirtType == ShirtTypes.Bowling)
    {
        return ButtonColors.Black;				
    }
    return ButtonColors.None;
}
Private Shared Function CoerceButtonColor(ByVal d As DependencyObject, ByVal value As Object) As Object
    Dim newShirtType As ShirtTypes = (TryCast(d, Shirt)).ShirtType
    If newShirtType = ShirtTypes.Dress OrElse newShirtType = ShirtTypes.Bowling Then
        Return ButtonColors.Black
    End If
    Return ButtonColors.None
End Function

설명

콜백 기반 CoerceValueCallback 다양 한 기술을 통해 종속성 속성에 할당할 수 있습니다. 이러한 각 기법에서는 먼저 만들어야 새 속성 메타 데이터 개체 (PropertyMetadata, 또는와 같은 파생된 클래스 FrameworkPropertyMetadata). 받아들이는 생성자 시그니처를 사용 하는 메타 데이터 개체 만들기는 coerceValueCallback 매개 변수를 콜백 처리기에 해당 매개 변수를 할당 합니다. 모든 서명 및 집합에서 메타 데이터를 생성 또는 CoerceValueCallback 사용에서 메타 데이터를 설정 하기 전에 속성입니다.

이 메타 데이터에 있는 경우에 다음을 수행할 수 있습니다.

  • 두 서명을 사용 하 여 새 클래스의 새 종속성 속성을 정의 Register, 메타 데이터를 제공 합니다 typeMetadata 값입니다.

  • 메타 데이터 재정의 (호출 OverrideMetadata(Type, PropertyMetadata)) 종속성 속성을 소유 하는 클래스에서 파생 시킬 때 기존 종속성 속성에 대 한 합니다.

  • 새 기존 종속성 속성을 추가 DependencyObject 클래스를 호출 하 여 새 메타 데이터를 사용 하 여 AddOwner(Type, PropertyMetadata)입니다.

이 콜백 구현 값을 확인 해야 baseValue 확인 및 추가 강제 해야 하는 값이 인지 값 또는 형식에 기반 합니다.

CoerceValueCallback 속성은 속성 시스템 또는 다른 호출자를 호출 하는 모든 시간을 호출 하는 데 종속성에 대 한 CoerceValueDependencyObject 인스턴스를 해당 속성의 식별자를 지정 하는 dp합니다.

속성 값을 변경 하는 속성 시스템의 가능한 참가자에서 가져왔을 수입니다. 스타일, 제네릭 무효화, 트리거, 속성 값 상속 및 로컬 값 설정이 포함 됩니다.

일반적으로 지정 해서는 둘 이상의 CoerceValueCallback 지정 된 종속성 속성에 대 한 (재정의 또는 이미 있는 종속성 속성에 대 한 새 메타 데이터를 사용 하 여 추가 CoerceValueCallback). 콜백 중 하나에만 영향을 줄 수 됩니다. 동작 콜백 수와 비교할 상속의 가장 많이 파생 된 클래스에 적용 된 것을 DependencyObject 호출자입니다. 소유자 계층에 더 높은 존재 종속성 속성에 대 한 메타 데이터에 할당 된 다른 콜백은 메타 데이터를 재정의할 때 대체 됩니다.

확장 메서드

GetMethodInfo(Delegate)

지정된 대리자가 나타내는 메서드를 나타내는 개체를 가져옵니다.

적용 대상

추가 정보