2012-04-03 3 views
1

다른 컨트롤에서 상속 한 UserControl을 만들었습니다. 이제 BaseControl의 DependencyProperty의 defaultvalue를 변경하는 방법을 검색합니다. WPF에서는 OverrideMetadata를 사용하여 DependecyProperty의 DefaultValue를 재정의 할 수 있습니다. 그러나 Silverlight에서는 OverrideMetadata를 사용할 수 없습니다.Silverlight에서 DependencyProperty의 DefaultValue 변경

Silverlight에서 DependencyProperty의 DefaultValue를 어떻게 변경할 수 있습니까?

new PropertyMetadata(string.Empty) 

가 항상 빈 문자열로 시작됩니다 : 기본 값을 설정하고이 부분에

답변

-1
 public static readonly DependencyProperty TextProperty = 
     DependencyProperty.Register("Text", typeof(string), typeof(MyClass), new PropertyMetadata(string.Empty)); 
     public string Text 
     { 
      get { return (string)GetValue(TextProperty); } 
      set { SetValue(TextProperty, value); } 
     } 

.

편집 :

글쎄, 정말이 문제를 해결하고 싶습니다. 나는 솔루션에서 가장 올바른 것으로 보이지 않는다고 생각하고 함께 개선하려고 노력할 수 있습니다. 하면 기본 클래스에서이 작업을 수행 :

public virtual void DefineDefaultValue(object default) 
    { 
     defaultValue = default; 
        OnPropertyChanged("MyProperty"); 
    } 

    static object defaultValue; 
    public static object Define() 
    { 
     return defaultValue; 
    } 

    public int MyProperty 
    { 
     get { return (int)GetValue(MyPropertyProperty); } 
     set { SetValue(MyPropertyProperty, value); } 
    } 

    // Using a DependencyProperty as the backing store for MyProperty. This enables animation, styling, binding, etc... 
    public static readonly DependencyProperty MyPropertyProperty = 
     DependencyProperty.Register("MyProperty", typeof(int), typeof(MainMenuBase), new PropertyMetadata((int)Define())); 

모든 후, 당신의 클래스 생성자에서이 작업을 수행 : 귀하의 답변에 대한

 public void ClassConstructor() 
    { 
     DefineDefaultValue("BlaBlaBla"); 
    } 

    public override void DefineDefaultValue(object default) 
    { 
     base.DefineDefaultValue(default); 
    } 
+0

감사합니다. 하지만 내 경우에는 내 컨트롤이 이미 DefaultValue string.Empty있는 TextProperty있는 다른 컨트롤에서 상속됩니다. 나는 지금 내 컨트롤에서 "blabla"와 같이 DefaultValue 만 변경하고 싶습니다. 새 속성을 만들지 마라! – BennoDual

+0

오, 죄송합니다. 나는 대답을 찾았지만 찾지 못했습니다. 로컬 값을 설정하면 도움이되지 않습니까? – Vinicius

+0

지금 편집 ...보세요. – Vinicius

관련 문제