在XAML C#中设置Style中的Binding属性

时间:2017-06-28 12:13:00

标签: c# wpf xaml data-binding wpf-style

我正在寻找一种在UpdateSourceTrigger中设置绑定属性Style的方法。目前我手动设置每个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>

1 个答案:

答案 0 :(得分:2)

样式适用于FrameworkElement(及派生控件)。

Binding不是FrameworkElement。

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

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 ...}