Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在所有文本框中自动设置ValidatesOnExceptions、ValidateSondaErrors和NotifyOnValidationError?_C#_Wpf_Xaml_Setter - Fatal编程技术网

C# 如何在所有文本框中自动设置ValidatesOnExceptions、ValidateSondaErrors和NotifyOnValidationError?

C# 如何在所有文本框中自动设置ValidatesOnExceptions、ValidateSondaErrors和NotifyOnValidationError?,c#,wpf,xaml,setter,C#,Wpf,Xaml,Setter,目前,我正在创建文本框并在每次创建绑定时指定ValidatesOnExceptions=True、ValidateSondaErrors=True、NotifyOnValidationError=True: <TextBox Width="150" Text="{Binding Expander1Name, ElementName=Window, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, Va

目前,我正在创建文本框并在每次创建绑定时指定ValidatesOnExceptions=True、ValidateSondaErrors=True、NotifyOnValidationError=True:

<TextBox Width="150" Text="{Binding Expander1Name, ElementName=Window, 
         Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, 
         ValidatesOnExceptions=True, ValidatesOnDataErrors=True, 
         NotifyOnValidationError=True}" Background="#FFF5EECC"></TextBox>   

我想使用全局XAML设置器设置ValidatesOnExceptions=True、ValidateSondaerRors=True、NotifyOnValidationError=True


这里的任何人都能给出一个明确的答案,是否有可能做到,如果没有,为什么,如果有,如何做到?

以您描述的方式,这是不可能的,因为这些属性存在于
DependencyObject
s中的
Binding
实例上,而不是作为
DependencyObject
s本身的属性公开。无法创建针对
绑定的
样式

也就是说,有几种方法可以解决这个问题:

  • 定义自己的类,该类扩展
    绑定
    ,并设置所需的默认值。然后,您将在当前使用
    绑定的任何地方使用该类
  • 定义一个附加的行为,该行为将查找附加到的对象中的所有
    绑定
    ,并设置所需的默认值

  • 第一个选项对我来说更可取,因为第二个选项可能会产生不可预见的后果(如果存在一个绑定,您不希望它承担默认值怎么办?)。第二个选项也会慢得多,因为它需要动态搜索它所连接的项目的所有依赖项属性。

    我问了几乎相同的问题,也许你也可以在那里看看:


    是的,我看到了答案。问题是,我喜欢在Blend中进行设计,并且没有办法更改那里的默认绑定类,如果每次都必须将绑定更改为ProperBinding,我也可能复制粘贴属性assignations@Arsen那我想你无法避免。顺便说一下,我不喜欢复制粘贴。我更喜欢有一个地方来改变被多次使用的东西。当然,你可以选择最适合自己的。我自己不喜欢cpp)。谢谢你的建议。让我们希望他们在下一个XAML版本中能够做到这一点