이 페이지가 유용했습니까?
이 콘텐츠에 대한 여러분의 의견은 중요합니다. 의견을 알려주십시오.
추가 의견
1500자 남음
MSDN Library
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

DependencyObject.SetValue 메서드

2013-12-13

DependencyObject에 종속성 속성의 로컬 값을 설정합니다.

Namespace:  System.Windows
어셈블리:  System.Windows(System.Windows.dll)

public void SetValue(
	DependencyProperty dp,
	Object value
)

매개 변수

dp
형식: System.Windows.DependencyProperty
설정할 종속성 속성의 식별자입니다.
value
형식: System.Object
새 로컬 값입니다.

예외조건
ArgumentException

valuedp 속성에 대해 등록된 올바른 형식이 아닌 경우

제공된 형식이 원래 등록된 종속성 속성에 대해 선언한 형식과 일치하지 않으면 예외가 발생합니다. value 매개 변수는 항상 적절한 형식으로 제공되어야 합니다.

반면 SetValue의 관리 코드 버전을 사용하려면 DependencyProperty 개체의 입력을 제공해야 합니다. 일반적으로 이 값은 공용 정적 속성에서 가져옵니다. 이 공용 정적 속성은 종속성 속성의 식별자 역할을 하며 종속성 속성 자체를 소유하는 동일한 개체에서 사용할 수 있습니다. 모든 속성이 종속성 속성은 아닙니다. 즉, SetValue의 관리 코드 버전을 사용하면 Windows Phone용 관리되는 API의 가능한 모든 속성에 액세스할 수 있는 것이 아니라 종속성 속성에만 액세스할 수 있습니다.

사용자 코드에서는 일반적으로 SetValue 호출이 필요하지 않습니다. 일반적으로 Windows Phone 속성 또는 사용자 지정 종속성 속성에는 속성을 래핑하는 CLR 속성이 있으므로 기본 CLR 사용을 통해 속성 값을 설정하기만 하면 됩니다. SetValue가 일반적으로 사용되는 대표적인 세 가지 경우는 다음과 같습니다.

  • 사용자 지정 종속성 속성을 정의하는 경우. CLR 사용에 대한 속성 set 접근자를 직접 정의하는 작업의 일부로 SetValue를 호출합니다.

  • 콜백을 정의하는 경우 또는 이미 DependencyProperty 식별자가 전달된 다른 범위에 있는데 해당 범위 내에 상호 작용하고자 하는 종속성 속성이 두 개 이상 있을 가능성이 있는 경우. 이러한 경우에는 SetValue를 호출하고 식별자를 전달하는 것이 대개는 더 간편합니다.

  • DependencyProperty 식별자가 연결된 속성을 참조하는 경우 또는 속성이 연결된 속성인지 CLR 래퍼가 포함된 종속성 속성인지 여부를 확실히 모를 경우. 연결된 속성에도 일반적으로 형식이 더 안전한 전용 get 및 set 접근자가 있습니다. 그러나 식별자가 있는 경우에는 SetValue를 사용하는 것이 더 편리할 수도 있습니다.

활성 애니메이션 중에 속성 값이 변경되면 해당 SetValue 호출로 인해 애니메이션의 기준 값이 수정됩니다. 애니메이션이 중지되면 애니메이션 중에 설정된 새 기준 값으로 돌아갑니다. 이 동작은 WPF의 동작과 같습니다.

다음 예제에서는 간단한 종속성 속성 선언을 보여 줍니다. SetValue를 호출하면 새 종속성 속성의 CLR 래퍼에 대한 set 접근자 구현 전체가 구성됩니다.


public class Fish : Control
{
    public static readonly DependencyProperty SpeciesProperty =
    DependencyProperty.Register(
    "Species",
    typeof(string),
    typeof(Fish), null
    );
    public string Species
    {
        get { return (string)GetValue(SpeciesProperty); }
        set { SetValue(SpeciesProperty, (string)value); }
    }
}


Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

표시:
© 2015 Microsoft