有没有办法指定一个自定义依赖属性的默认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}" /> 
+0

这是一个非常优雅的做法,我没有考虑过。 – gajo357