Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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# 如何更改WPF中绑定选项的默认值?_C#_Wpf_Templates_Binding_Styles - Fatal编程技术网

C# 如何更改WPF中绑定选项的默认值?

C# 如何更改WPF中绑定选项的默认值?,c#,wpf,templates,binding,styles,C#,Wpf,Templates,Binding,Styles,在我当前的项目中,我使用了几个文本框控件,这些控件的内容由来自数据库的对象填充。对象使用验证来验证文本的正确插入 当我想显示一个验证错误(即文本有很多个字符)时,我必须向text属性添加一些绑定选项,如下所示: <TextBox Text="{Binding Mode=TwoWay, Path=Description, ValidatesOnDataErrors=True, NotifyOnValidationError=True, UpdateSourceTrigger=Property

在我当前的项目中,我使用了几个文本框控件,这些控件的内容由来自数据库的对象填充。对象使用验证来验证文本的正确插入

当我想显示一个验证错误(即文本有很多个字符)时,我必须向text属性添加一些绑定选项,如下所示:

<TextBox Text="{Binding Mode=TwoWay, Path=Description, ValidatesOnDataErrors=True, NotifyOnValidationError=True, UpdateSourceTrigger=PropertyChanged}" />

是否可以创建一个模板或样式,或者将最后三个选项(ValidateSondaErrors、NotifyOnValidationError、UpdateSourceTrigger)的默认值更改为上述代码中的值?文本框控件应如下所示:

<TextBox Text="{Binding Mode=TwoWay, Path=Description}" />

鉴于这是WPF(不是Silverlight),我认为您确实有一个选择:自定义标记扩展。这样一个扩展可以构造并返回一个
绑定
,不管您喜欢什么,并且会产生一个简单的使用模式,例如:

<TextBox Text="{ValidatedBinding Description}"/>


有关实现自定义标记扩展的详细信息,请参阅。

如果从标记扩展返回绑定,则该绑定的行为不符合预期,但您可以直接从绑定继承并在构造函数中设置属性。这正是我需要的帮助。它就像一个符咒。我创建了一个新类,并从绑定继承了它,现在它可以工作了。非常感谢。:)