【发布时间】:2016-01-20 04:57:34
【问题描述】:
我在UIElement RenderTransformProperty 上有一个双向绑定。从ViewModel 连接到View 工作正常,ViewModel 可以从View 读取更新的值,但ViewModel 不知道View 中的属性何时更改。我知道我可以创建自己的DependencyProperty 并传递价值,但这似乎是错误的。当View's RenderTransformProperty 发生变化时,如何正确通知ViewModel。
在视图中:
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;
}
}
}
【问题讨论】:
-
Transform 是一个 UI 相关的类。我不认为在 ViewModel 中定义一个与 UI 相关的类是一个好主意。
-
您可能希望将UpdateSourceTrigger 绑定到
PropertyChanged。