代码之家  ›  专栏  ›  技术社区  ›  Prince Ashitaka

混合-未更新属性更改

  •  2
  • Prince Ashitaka  · 技术社区  · 14 年前

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

    但是,在我的例子中,它不会发生,直到我再次构建应用程序,混合设计器才得到更新。请给我一些建议。 我不想让消费者陷入麻烦,让他们为每一次房地产价值的变化而建造。

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

    2 回复  |  直到 14 年前
        1
  •  1
  •   vc 74    14 年前

    您是否实现了属性的setter,以便控件在属性值更改时更新?

    (顺便说一句,我很好奇,辛烷值是什么形状?这和化学有关吗?)

        2
  •  0
  •   Prince Ashitaka    14 年前

    CommonStyles 用于应用样式。例如,

    共同风格

    我犯的错误是,我直接赋值如下。在基类中。[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;
    ...
    

    当我更改background属性时,它不会更新我的 ShapeBase.Background 财产。因为,它不是依赖性绑定的。

    我通过,dp绑定解决了这个问题。就像下面一样。

    this.ShapeBase.SetBinding(BackgroundProperty, 
                  new Binding() { 
                  Source = this.Shape.ShapeStyle,
                  Path = new PropertyPath("Background") });