2011-07-18 40 views
17

WPF için yeni ve bu benim ilk gönderiim. 'DependencyObject' den aşağı inen ve 'Apple' adındaki ekstra özelliği ekleyen 'Fruit' adında bir sınıf oluşturdum. 'Meyve' türü 'MyFruit' adlı bir Bağımlılık Özelliği içeren yeni bir özel kontrol yarattım. Sorum i? I nesnesini kullanarak XAML Bunu ayarlamak istiyoruz 'Apple' mülkiyet yani 'MyFruit' nesne içinde özellikleri için varsayılan değer (ayarlayabilirsiniz nasıl olduğunu.Bağımlılık özelliği için varsayılan değeri nasıl değiştirebilirim? Bağımlılık özelliği

public class Gauge : Control 
{ 
    . 
    . 
    . 

    //--------------------------------------------------------------------- 
    #region MyFruit Dependency Property 

    public Fruit MyFruit 
    { 
     get { return (Fruit)GetValue(MyFruitProperty); } 
     set { SetValue(MyFruitProperty, value); } 
    } 

    public static readonly DependencyProperty MyFruitProperty = 
     DependencyProperty.Register("MyFruit", typeof(Fruit), typeof(CircularGauge), null); 

    #endregion 


} 


//------------------------------------------------------------------------- 
#region Fruit class 

public class Fruit : DependencyObject 
{ 
    private int apple; 

    public int Apple 
    { 
     get { return apple; } 
     set { apple = value; } 
    } 

} 

#endregion 

cevap

24

yerine null içinde senin bağımlılık özelliği meta Şimdi sıra

public static readonly DependencyProperty MyFruitProperty = 
    DependencyProperty.Register("MyFruit", typeof(Fruit), typeof(CircularGauge), new UIPropertyMetadata("YOUR DEFAULT VALUE GOES HERE")); 
+0

Cevabınız için teşekkür ederiz ama ayarlayıcı mümkünse kullanarak XAML 'Apple'property nasıl ayarlanacağı bilmek istiyorum? –

+0

"Varsayılan Değeriniz Burada Gidiyor" Bu tam olarak nasıl çalışır? Metadate varsayılan değeri bir değer tipi olmalıdır. Ancak referans türü olan 'Fruit' sınıfındaki alt özellikler için varsayılan bir değer belirlemem gerekiyor mu? –

+0

evet haklısınız ... Varsayılan değeri TargetNullValue özelliği ile tanımlayabilirsiniz.

4

bu

gibi mülkiyet meta verileri kullanarak gerek olur

new UIPropertyMetadata("YOUR DEFAULT VALUE GOES HERE") 

insert 0

class MyValidation 
{ 

    public bool status 
     { 
      get { return (bool)GetValue(statusProperty); } 
      set { SetValue(statusProperty, value); } 
     } 

     public static readonly DependencyProperty statusProperty = 
      DependencyProperty.Register("status", typeof(bool), typeof(MyValidation),new PropertyMetadata(false)); 

}

İlgili konular