2011-09-21 3 views
1

DependencyProperty에서 Enum을 사용하려고했지만 항상 Enum의 첫 번째 값을 사용합니다.DependencyProperty의 Enum이 Enum에서 첫 번째 값을 반환하는 이유는 무엇입니까?

내 열거 :

public enum LayoutType 
{ 
    Horizontal, 
    Vertical 
} 

재산권 선언 : 내 XAML하지만 문제의 속성에 액세스 할 수 있습니다

public static readonly DependencyProperty LayoutTypeProperty = 
     DependencyProperty.RegisterAttached("LayoutType", typeof(LayoutType), typeof(ctrlAllLayouts), new PropertyMetadata(null)); 

는에 하나 "수평"또는이다 설정하면 항상 값 "수평"을 제공한다는 것입니다 "수직선". 이 구문 분석하는 당신은 또한 일치 정적 세터와 게터 메소드를 선언해야한다 Attached Properties

+0

+1 코드 제공 및 설명 –

답변

0

(당신이 RegisterAttached을 사용이 일반 종속성 속성 없음). Xaml 파서는 실제로 이러한 메서드를 사용합니다.

public static void SetLayoutType(DependencyObject element, LayoutType value) 
{ 
    element.SetValue(LayoutTypeProperty, value); 
} 
public static LayoutType GetLayoutType(DependencyObject element) 
{ 
    return (LayoutType)element.GetValue(LayoutTypeProperty); 
} 

이 방법은 누락하고, 당신이 PropertyMetadata의 기본 값을 지정하지 않기 때문에, 항상 첫 번째 열거 형의 값은 0으로 설정됩니다.

관련 문제