2011-03-31 4 views
0

3 가지 종속성 속성과 FrameworkPropertyMetadata가 있는데 둘 이상의 DP에서 메타 데이터를 사용하려고하면 충돌이 발생합니다. 나는 metadatam의 3 개의 복제본을 가지고 싶지 않다.동일한 FrameworkPropertyMetaData를 두 번 이상 사용합니다.

static FrameworkPropertyMetadata propertyMetaData = new FrameworkPropertyMetadata("My Control", FrameworkPropertyMetadataOptions.BindsTwoWayByDefault); 

    public static readonly DependencyProperty Property_A = DependencyProperty.Register("Property_A", typeof(string), typeof(MyControl), propertyMetaData); 
    public static readonly DependencyProperty Property_B = DependencyProperty.Register("Property_B", typeof(string), typeof(MyControl), propertyMetaData); 
    public static readonly DependencyProperty Property_C = DependencyProperty.Register("Property_C", typeof(string), typeof(MyControl), propertyMetaData); 

각 속성에 대해 별도의 메타 데이터를 선언해야합니까, 아니면 동일한 속성을 사용할 수 있습니까?

덕분에, Eamonn

답변

1

과 유사한 간단한 유틸리티 방법을 쓸 수 있습니다 : 다음

private internal static FrameworkPropertyMetadata CreateDefaultPropertyMetadata() 
{ 
    return new FrameworkPropertyMetadata("My Control", FrameworkPropertyMetadataOptions.BindsTwoWayByDefault); 
} 

을 그리고 그것을 사용 : 나는 '경우

public static readonly DependencyProperty Property_A = DependencyProperty.Register("Property_A", typeof(string), typeof(MyControl), CreateDefaultPropertyMetadata()); 
public static readonly DependencyProperty Property_B = DependencyProperty.Register("Property_B", typeof(string), typeof(MyControl), CreateDefaultPropertyMetadata()); 
public static readonly DependencyProperty Property_C = DependencyProperty.Register("Property_C", typeof(string), typeof(MyControl), CreateDefaultPropertyMetadata()); 

실례 명백한 것을 설명하는 m.

1

당신은 각각의 새를 선언해야합니다. 당신이 (이 합리적인 것) 반복 코드를 방지하려면

+0

어쨌든 두려웠습니다. –

관련 문제