2012-02-01 50 views
0

得到更新,我有兩個檢測點,我在DefiningGeometry獲得更新:綁定不DefiningGeometry

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中的賦值是否對屬性沒有影響。有沒有人看到任何明顯的錯誤?

注意:我有相同的變量名稱,從派生類隱藏DP,刪除隱藏上面的代碼工作,但波紋管的答案任何方式工作。

+0

一個明顯的錯誤是,你把東西放在一個吸氣的地方。 – 2012-02-01 23:45:59

+0

@ H.B。這不會更新DP還是設計錯誤? – mihajlv 2012-02-01 23:47:58

+0

你應該一般不應該在getter中設置值。 – 2012-02-01 23:49:53

回答

1

如果綁定的DPS,你在控件的代碼,你想,否則你的具體值覆蓋現有的綁定使用SetCurrentValue(不是CLR-包裝(StartSc & EndSc),它使用SetValue

也正如我所說,避免在getter中做事情,很難分辨何時和多久他們被調用。

+0

我在隱藏DP的派生類中有相同的var名稱,所以一旦我刪除了上述代碼工作的那些變量,它們就永遠不會被設置。無論哪種方式你的答案工作。謝謝。 – mihajlv 2012-02-02 00:03:02