我在创建一个将成为InPlaceEdit之王并将处理验证的控件时遇到问题。
在我考虑验证之前,我已经创建了一个控件,它具有依赖属性:
public static readonly DependencyProperty ValueProperty = DependencyProperty.Register(
"Value",
typeof (object),
typeof (InPlaceEdit),
new FrameworkPropertyMetadata(default (object), FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, ValueChanged));
我还有额外的属性来存储本地(未更改的)值:
public static readonly DependencyProperty LocalValueProperty = DependencyProperty.Register(
"LocalValue",
typeof (object),
typeof (InPlaceEdit),
new FrameworkPropertyMetadata(default(object), FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
我创建了按钮Save
和Cancel
,在保存时将“LocalValue”保存到binded属性,并在取消时从“值”恢复“LocalValue”。
它工作得很好,但我有一个问题。它不支持验证,因为我的绑定值在按钮点击时会发生变化。
有没有办法以某种方式将ViewModel验证传递给我的控件?