我在UIElement
RenderTransformProperty
上有双向绑定。从ViewModel
到View
的连接工作正常,ViewModel
可以从View
读取更新后的值,但ViewModel
不知道何时View
中的属性发生了变化。我知道我可以创建自己的DependencyProperty
并传递价值但似乎错了。如何在ViewModel
View's
更改时正确通知RenderTransformProperty
。
在视图中:
var renderTransformBinding = new Binding
{
Path = new PropertyPath("SymbolTransform"),
Mode = BindingMode.TwoWay
};
SetBinding(RenderTransformProperty, renderTransformBinding);
在ViewModel中(使用MVVM Light):
private Transform _symbolTransform;
public Transform SymbolTransform
{
get { return _symbolTransform; }
set
{
if (Set(() => SymbolTransform, ref _symbolTransform, value))
{
_isDirty = true;
}
}
}
答案 0 :(得分:0)
我错了。正在通知ViewModel
该更改 - 即正在调用setter。出于某种原因,_symbolTransform
和value
相等,因此if (Set(() => SymbolTransform, ref _symbolTransform, value))
返回false。不知道在调用setter之前如何(显然)更新_symbolTransform
。