枚举依赖项属性永远不会从视图更新

时间:2016-07-26 15:38:44

标签: wpf enums dependency-properties

我在一个枚举的usercontrol上有一个依赖属性。我绑定它并在主窗口视图中设置它但它没有改变。

这是用户控件,图标是枚举

dt[grep("^\\S$", dt$character),]

这是枚举

<local:GoogleMaterialIcon Icon="AccountBalance"/>

这是dp

public enum Icon
{
    _3DRotation,
    Accessibility
};

最后是属性

    /// <summary>
    /// Dependency Property used to back the <see cref="Icon"/> Property
    /// </summary>
    public static readonly DependencyProperty IconProperty =
        DependencyProperty.Register("Icon",
            typeof(Icon),
            typeof(GoogleMaterialIcon),
            new PropertyMetadata(null));

我在设置图标中放置一个断点,但它永远不会运行。枚举也在自己的文件中。每次我运行它都会向我显示错误的图标,因为dp会恢复到第一个枚举并且永远不会更新

更新:后面的用户控件的完整代码

public Icon Icon
{
    get { return (Icon)GetValue(IconProperty); }
    set
    {
        SetValue(IconProperty, value);
    }
}

1 个答案:

答案 0 :(得分:1)

显然在某些情况下 - 至少对我来说 - 奇怪的情况,即使Microsoft只提出解决方案而不是解释。

在您的PropertyMetadata中,您缺少PropertyChanged - 事件

不幸的是我无法深入解释,这里发生了什么。但是使用PropertyChanged - DependencyProperty的事件对我来说似乎是一个可接受的解决方法。