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

本文关键字:绑定 参数 Xaml 封装 | 更新日期: 2023-09-27 18:19:51

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


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

<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%的必要情况下覆盖已建立的默认值,那将是一件很好的事情[但如果一些小事情能够以最小的麻烦干净地完成核心目标,那也会很好…]

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

您可以简单地创建一个派生的Binding类,因为Binding已经从MarkupExtension派生而来。

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