1

目前,我正在创建文本框并在每次创建绑定时指定 ValidatesOnExceptions=True, ValidatesOnDataErrors=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, ValidatesOnDataErrors=True, NotifyOnValidationError=True。

这里的任何人都可以给出一个明确的答案是否可以这样做,如果不能 - 为什么,如果是 - 如何?

4

2 回答 2

2

以您描述的方式不可能,因为这些属性存在于sBinding内的实例上,DependencyObject而不是作为DependencyObjects 本身的属性公开。不可能创建以s 为Style目标的 a Binding

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

  1. 定义您自己的类来扩展Binding和设置您想要的任何默认值。然后,您将在当前使用的任何地方使用该类Binding
  2. Binding定义一个附加行为,在它所附加的对象中查找所有s 并设置所需的默认值。

第一个选项对我来说更可取,因为第二个选项可能会产生无法预料的后果(如果有一个您希望它采用默认值的绑定怎么办?)。第二个选项也会慢得多,因为它需要动态搜索它所附加到的项目的所有依赖属性。

于 2012-04-11T16:48:21.980 回答
1

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

装订样式?

于 2012-04-12T08:57:13.673 回答