雖然學習MVVM,我創建了一個DataTemplate
我的觀點的車型之一:綁定到一個子屬性和更新如果鏈中的任何屬性發生變化
<DataTemplate DataType="{x:Type task:NodeDefinitionVM}">
<Ellipse Width="4" Height="4" Fill="Red" >
<Ellipse.RenderTransform>
<TranslateTransform X="{Binding Location.X, Mode=TwoWay}"
Y="{Binding Location.Y, Mode=TwoWay}" />
</Ellipse.RenderTransform>
</Ellipse>
</DataTemplate>
簡化視圖模型類:
class NodeDefinitionVM : (...)
{
public Point Location
{
get { return model.Location; }
set { model.Location = value; }
}
(...)
}
在我的情況下,該模型實現INotifyPropertyChanged,因爲我需要對View中的反射模型進行所有更改(注意XAML中的Mode=TwoWay
)。
問題:變換偏移量(X,Y)的初始值設置和「位置」屬性發生變化時,我得到通知。但有否通知.X已更改,因爲我綁定到Location.X,轉換不會更新(第一次除外),因爲它期望Location.X更改通知。 Point
類型是輕量級結構。
問:是否可以綁定到.X,同時更新綁定,只要任何沿Location.X鏈的變化的特性?是否有像「Binding prop1.prop2.prop3
」這樣的「更長鏈」的通用解決方案?
THANKYOU!偶然發現你的答案,這是本頁唯一解決我的問題的答案。 <3 – rikkit