Wpf DependencyProperty默认值

Wpf DependencyProperty默认值,wpf,binding,dependency-properties,default-value,Wpf,Binding,Dependency Properties,Default Value,我想让一个独立财产在WPF工作。我正在使用: public static readonly DependencyProperty DisplayModeProperty = DependencyProperty.Register("DisplayMode", typeof (TescoFoodSummary), typeof (Orientation), new UIPropertyMetadata(Orientation.Vertical)); /// <summary>

我想让一个独立财产在WPF工作。我正在使用:

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); }
    }
public static readonly dependencProperty DisplayModeProperty=dependencProperty.Register(“DisplayMode”、typeof(TescoFoodSummary)、typeof(Orientation)、new UIPropertyMetadata(Orientation.Vertical));
/// 
///获取或设置方向。
/// 
///方向。
面向公众的显示模式{
获取{return(Orientation)base.GetValue(DisplayModeProperty);}
set{base.SetValue(DisplayModeProperty,value);}
}

初始化窗口时,出现错误:默认值类型与属性“DisplayMode”的类型不匹配。但是,如果我不使用默认值,则由于未设置DisplayModeProperty,窗口加载时会出现空引用异常。

将注释作为答案发布

根据msdn,语法看起来是这样的:

public static DependencyProperty Register(
    string name,
    Type propertyType,
    Type ownerType,
    PropertyMetadata typeMetadata
)
在本例中,ownerType为
TescoFoodSummary
,propertyType为
Orientation
,因此参数具有以下位置:

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

第二个参数是属性类型,第三个参数是控件的类型,请注意,在您的示例中交换它们。这是一个愚蠢的错误。谢谢。@vortex:请把它作为一个答案贴出来……谢谢,很容易犯错误。