我在Silverlight中有一个自定义控件,在我再次构建应用程序之前,属性窗口的属性更改没有得到更新。可能是什么问题?
比如说。我有一个名为Shapes的控件。如果我选择形状类型为“辛烷值”,它应该在混合设计时表面显示样品辛烷值。
但是,在我的情况下它没有发生,混合设计师没有得到更新,直到我再次构建应用程序。请就此向我提出建议。 我不想让消费者陷入困境,让他们为他们所做的每一次财产价值变化而建立它。
注意:控件中的所有公开属性都是依赖属性。
答案 0 :(得分:1)
您是否实施了属性的setter,以便在属性值更改时更新控件?
(顺便说一句,顺便说一句,因为我很好奇,辛烷的形状是什么?它与化学有什么关系?)答案 1 :(得分:0)
我所拥有的是用于应用样式的CommonStyles
类型的属性。例如,
CommonStyles
将包含背景,前景,厚度等dp,
我做的错误是,我直接分配了如下的值。在基类。 [ShapeStyle是CommonStyle类型的dp]
//// Both properties are dp's but, assigned them like normal property. This caused the issue
ShapeBase.Background = this.Shape.ShapeStyle.Background;
ShapeBase.Foreground = this.Shape.ShapeStyle.Foreground;
ShapeFace.Background = this.Shape.ShapeFaceStyle.Background;
...
当我更改背景属性时,它不会更新我的ShapeBase.Background
属性。因为,它不是依赖性约束。
我解决了它,dp绑定。如下。
this.ShapeBase.SetBinding(BackgroundProperty,
new Binding() {
Source = this.Shape.ShapeStyle,
Path = new PropertyPath("Background") });