我有一个依赖属性“区域”:
public double Area
{
get { return Math.Round((double)this.GetValue(AreaProperty),2); }
set { this.SetValue(AreaProperty, value); }
}
我正在使用代码添加一些视觉效果,并在添加视觉效果时更新该区域。我希望将值四舍五入到小数点后两位。
drawQuads(builder); //Updating area in these three methods
extrudeQuads();
drawSidesAndBottoms(builder);
Area *= 1; //this is required so that the roundoff method can work (Why ?)
如您所见,该属性的 getter 正在四舍五入该值。但问题是舍入不起作用,除非我在调用这三个方法后将“面积”乘以 1 或其他值。
请解释什么原因,为什么我需要将它乘以 1?
编辑 :
实际上,这些方法正在使用以下语句更新区域:
Area += someFormula;
它不是在调用吸气剂吗?即使不是,最后我在标签中显示值(实际上将此属性绑定到标签 Content 属性,以便区域更改 Label.Content 也会更新)。