http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=KO-KR&k=k(SYSTEM.WINDOWS.DEPENDENCYOBJECT.GETVALUE);k(TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERSION%3dV4.0%22);k(DevLang-CSHARP)&rd=true

 

유효 값은 속성 시스템에서 값을 요청하는 호출자에게 반환하는 속성의 값입니다.속성 시스템에서 속성 시스템 값 우선 순위에 참가하는 가능한 모든 입력을 계산하면 유효 값이 생성됩니다.여기에는 강제 형 변환 및 애니메이션이 포함됩니다.자세한 내용은 종속성 속성 값 우선 순위을 참조하십시오.

이 메서드는 UnsetValue를 반환하지 않습니다.UnsetValue는 내부적으로 다양한 기능에 사용되며 강제 형 변환 콜백을 통해 노출되기도 하는 속성 시스템에 대한 센티널 값입니다.

속성의 형식이 확실하지 않는 경우에는 요청된 종속성 속성의 식별자를 쿼리하여 반환 값을 변환할 수 있는 보다 구체적인 PropertyType이 있는지를 확인할 수 있습니다.

 

 

public class MyStateControl : ButtonBase
{
  public MyStateControl() : base() { }
  public Boolean State
  {
    get { return (Boolean)this.GetValue(StateProperty); }
    set { this.SetValue(StateProperty, value); } 
  }
  public static readonly DependencyProperty StateProperty = DependencyProperty.Register(
    "State", typeof(Boolean), typeof(MyStateControl),new PropertyMetadata(false));
}

 

또다른 예제

아래 메소드는 자기위치부터 아래로 컨트롤 찾는 메소드 입니다.

여기서는 string controlName = child.GetValue(Control.NameProperty) as string;

이렇게 컨트롤의 이름을 가지고 오고 있습니다

        /// <summary>
        /// 자신의 컨트롤 한단계 아래부터 사용자정의 이름으로 검색합니다.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="_Control"></param>
        /// <param name="_FindControlName"></param>
        /// <returns></returns>
        private T FindVisualChildByName<T>(Control _Control, string _FindControlName) where T : FrameworkElement
        {
            T t = null;
            for (int i = 0; i < VisualTreeHelper.GetChildrenCount(_Control); i++)
            {
                var child = VisualTreeHelper.GetChild(_Control, i);
                string controlName = child.GetValue(Control.NameProperty) as string;
                if (controlName == _FindControlName)
                {
                    t = child as T;
                }
               
            }
            return t;
        }

+ Recent posts