在 XAML C# 中的样式中设置绑定 属性

Set Binding property in Style in XAML C#

我正在寻找一种在 Style 中设置绑定 属性 UpdateSourceTrigger 的方法。目前我在每个 TextBox 上手动设置它,如下所示:

<TextBox Text="{Binding boundValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

我想做的是这样的(但这显然行不通):

<Window.Resources>
    <Style TargetType="{x:Type TextBox}">
        <Setter Property="Binding.UpdateSourceTrigger" Value="PropertyChanged" />
    </Style>
</Window.Resources>
<Grid>
    <TextBox Text="{Binding boundValue, Mode=TwoWay}"/>
</Grid>

样式适用于 FrameworkElements(和派生控件)。

Binding 不是 FrameworkElement。

无论如何,您可以创建自己的 markup extension 来设置您需要的绑定属性:

public class PropertyChangedBinding : Binding
{
    public PropertyChangedBinding(string path)
        : base(path)
    {
        UpdateSourceTrigger = System.Windows.Data.UpdateSourceTrigger.PropertyChanged;
    }

    public PropertyChangedBinding()
        : base()
    {
        UpdateSourceTrigger = System.Windows.Data.UpdateSourceTrigger.PropertyChanged;
    }
}

所以在你的 XAML 中你可以使用 {local:PropertyChangedBinding ...}.