C# 装订不';无法在定义几何体中更新
我有两个DPs,我在一个C# 装订不';无法在定义几何体中更新,c#,wpf,data-binding,dependency-properties,C#,Wpf,Data Binding,Dependency Properties,我有两个DPs,我在一个DefiningGeometryget中更新: protected override Geometry DefiningGeometry { get { StartSc = sc.Transform(Start); EndSc = sc.Transform(End); //Start and End are also dependencies properties. ... } }
DefiningGeometry
get中更新:
protected override Geometry DefiningGeometry
{
get
{
StartSc = sc.Transform(Start);
EndSc = sc.Transform(End);
//Start and End are also dependencies properties.
...
}
}
我绑定到StartSc和EndSc,但目标从未更新,它始终保持默认值0。开始和结束更改,所以这不是问题所在,我想知道DefiningGeometry
get中的赋值是否对属性没有影响。有人看到任何明显的错误吗
注意:我的变量名与从派生类中隐藏DPs的变量名相同,删除了隐藏上述代码的功能,但下面的答案无论如何都有效 如果您绑定到DPs,并且您在要使用的控件代码中(而不是使用
SetValue
的CLR包装器(StartSc
&EndSc
),因为否则您将用具体值覆盖现有绑定
正如我所说的,避免使用getter,很难判断它们何时以及多久被调用一次。明显的错误是,您首先在getter中设置了内容。@H.B.这不会更新DPs吗?还是设计错误?通常您不应该在getter中设置值。我在隐藏DPs的派生类中有相同的var名称,所以它们从来没有被设置过,一旦我删除了这些变量,上面的代码就起作用了。不管怎样,你的答案都有效。非常感谢。