当View的RenderTransformProperty更改时通知ViewModel

时间:2016-01-19 19:38:45

标签: c# wpf mvvm

我在UIElement RenderTransformProperty上有双向绑定。从ViewModelView的连接工作正常,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;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我错了。正在通知ViewModel该更改 - 即正在调用setter。出于某种原因,_symbolTransformvalue相等,因此if (Set(() => SymbolTransform, ref _symbolTransform, value))返回false。不知道在调用setter之前如何(显然)更新_symbolTransform