有没有办法指定一个自定义依赖属性的默认ValidatesOnDataErrors?
问题描述:
有没有办法将我的自定义DependencyProperty的ValidatesOnDataErrors设置为True,所以我不必每次绑定到它时都这样做? this的内容。有没有办法指定一个自定义依赖属性的默认ValidatesOnDataErrors?
public static readonly DependencyProperty TextProperty =
DependencyProperty.Register(nameof(Text), typeof(string),
typeof(ErrorTextEdit), new FrameworkPropertyMetadata(null)
{
BindsTwoWayByDefault = true,
DefaultUpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged,
// Something Here maybe???
});
public string Text
{
get { return (string) GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
我的控件也可以从TextBox继承,如果有帮助的话。
答
不,我恐怕不是。这是Binding类的属性,而不是依赖项属性。什么,你可以到与自定义标记扩展设置ValidatesOnDataErrors属性为您更换您的XAML标记的{Binding}
标记扩展:
How can i change the default values of the Binding Option in WPF?
或创建自定义绑定类:
public class CustomBinding : Binding
{
public CustomBinding(string path)
:base(path)
{
this.NotifyOnValidationError = true;
}
}
用法:
<TextBlock Text="{local:CustomBinding Name}" />
这是一个非常优雅的做法,我没有考虑过。 – gajo357