2011-05-05 30 views
11

WPF'de çalışan bir DependencyProperty almaya çalışıyorum. Ben kullanıyorum: Pencereden hazrlarkenDependencyProperty Varsayılan Değer

public static readonly DependencyProperty DisplayModeProperty = DependencyProperty.Register("DisplayMode", typeof (TescoFoodSummary), typeof (Orientation), new UIPropertyMetadata(Orientation.Vertical)); 
    /// <summary> 
    /// Gets or sets the orientation. 
    /// </summary> 
    /// <value>The orientation.</value> 
    public Orientation DisplayMode { 
     get { return (Orientation)base.GetValue(DisplayModeProperty); } 
     set { base.SetValue(DisplayModeProperty, value); } 
    } 

, bir hata alıyorum: Varsayılan değer türü özelliği 'displayMode' tipini eşleşmiyor. Howevere, eğer varsayılan değerden çıkmış olursam, pencere DisplayModeProperty ayarlanmadan dolayı yüklendiğinde boş bir referans istisnası alıyorum.

+1

İkinci parametre özelliktir tip, üçüncü parametre kontrolün tipi, dikkatli ol, örneğinizde takas et. – vorrtex

+0

Peki bu aptal bir hataydı. Teşekkürler. – Echilon

+0

@vorrtex: Lütfen cevap olarak gönderin ... –

cevap

13

Yorum yazarak yanıt olarak. msdn DependencyProperty.Register Method sözdizimi göre

böylece görünür: Senin durumunda

public static DependencyProperty Register(
    string name, 
    Type propertyType, 
    Type ownerType, 
    PropertyMetadata typeMetadata 
) 

ownerType TescoFoodSummary ve PropertyType parametreleri aşağıdaki mevkileri var bu yüzden, Orientation geçerli:

DependencyProperty.Register("DisplayMode", typeof (Orientation), typeof (TescoFoodSummary), new UIPropertyMetadata(Orientation.Vertical)); 
+0

Teşekkürler, kolay bir hata yapmak. – Echilon