我在一个枚举的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);
}
}
答案 0 :(得分:1)
显然在某些情况下 - 至少对我来说 - 奇怪的情况,即使Microsoft只提出解决方案而不是解释。
在您的PropertyMetadata中,您缺少PropertyChanged
- 事件
不幸的是我无法深入解释,这里发生了什么。但是使用PropertyChanged
- DependencyProperty的事件对我来说似乎是一个可接受的解决方法。