在Xaml中封装重复的绑定参数

时间:2015-10-30 12:56:00

标签: c# wpf xaml binding markup-extensions

我希望这是重复的,但我似乎有搜索者阻止......

在WPF表单中,我发现自己通过大量剪切/粘贴重复指定一组一致的Binding参数,例如: -

  

<dxe:TextEdit EditValue="{Binding Name, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, NotifyOnValidationError=True}" />

     

...

     

<dxe:TextEdit EditValue="{Binding Days, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, NotifyOnValidationError=True}" />

定义标记扩展(或类似但更合适的东西)的最简洁方法是什么,它允许我删除样板并能够用例如:。

替换它。
  

<dxe:TextEdit EditValue="{mine:EditorBinding Name}" />

     

...

     

<dxe:TextEdit EditValue="{mine:EditorBinding Days>" />

对于奖励积分,如果仍然能够覆盖5%的必要情况下确定的默认值,那将是很好的[但是如果小的东西可以干净利落地完成核心目标,那么就会发生这种情况,那就是&#39; ll做得很好......]

1 个答案:

答案 0 :(得分:1)

您只需创建一个派生的Binding类,因为Binding已经从MarkupExtension派生。

public class EditorBinding : Binding
{
    public EditorBinding()
    {
        UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
        ValidatesOnDataErrors = true;
        NotifyOnValidationError = true;
    }

    public EditorBinding(PropertyPath path)
        : this()
    {
        Path = path;
    }
}