DependencyProperty默认值

发布于 2024-11-05 05:29:38 字数 700 浏览 3 评论 0原文

我正在尝试让 DependencyProperty 在 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); }
    }

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

I'm trying to get a DependencyProperty working in WPF. I'm using:

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); }
    }

When I initialize the window, I get an error: Default value type does not match type of property 'DisplayMode'. Howevere, if I leave the default value out I get a null reference exception when the window loads due to DisplayModeProperty not being set.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

A君 2024-11-12 05:29:38

发表评论作为答案。

根据msdn DependencyProperty.Register Method,语法如下所示:

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));

Posting comment as an answer.

According to msdn DependencyProperty.Register Method the syntax looks so:

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

In your case ownerType is TescoFoodSummary and propertyType is Orientation, so parameters have the following positions:

DependencyProperty.Register("DisplayMode", typeof (Orientation), typeof (TescoFoodSummary), new UIPropertyMetadata(Orientation.Vertical));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文