Blend - PropertyChanges没有得到更新

时间:2010-09-14 11:53:48

标签: silverlight silverlight-4.0 expression-blend design-time

我在Silverlight中有一个自定义控件,在我再次构建应用程序之前,属性窗口的属性更改没有得到更新。可能是什么问题?

比如说。我有一个名为Shapes的控件。如果我选择形状类型为“辛烷值”,它应该在混合设计时表面显示样品辛烷值。

但是,在我的情况下它没有发生,混合设计师没有得到更新,直到我再次构建应用程序。请就此向我提出建议。 我不想让消费者陷入困境,让他们为他们所做的每一次财产价值变化而建立它。

注意:控件中的所有公开属性都是依赖属性。

2 个答案:

答案 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") });