在xaml中更改默认绑定/文本框StringFormat

时间:2012-07-24 07:32:19

标签: wpf xaml data-binding

我正在创建一个包含大量文本框的表单,这些文本框具有如下所示的文本属性:

Text="{Binding Path=SomeField, StringFormat='\{0:#,##0.##\}', Mode=TwoWay, ValidatesOnExceptions=true, NotifyOnValidationError=true, Source={StaticResource statementsMainsViewSource}}"

为了节省大量空间和击键,我想知道是否有办法在每个窗口中使用样式设置默认文本框(例如,有点类似于下面的错误代码):

<Style TargetType="{x:Type TextBox}">
        <Setter Property="StringFormat" Value="\{0:#,##0.##\}" />
</Style>

不幸的是,它是具有属性的绑定东西,而不是文本框,我不知道如何设置绑定样式。

有人能指出我更改默认绑定StringFormats的正确语法 - 或者有人可以建议我如何做我正在尝试的事情吗?

欢呼和tia

mcalex

1 个答案:

答案 0 :(得分:1)

试试这个

public class TextBinding:Binding
{
    public TextBinding()
    {
        Mode = BindingMode.TwoWay;
        StringFormat = @"\{0:#,##0.##\}";
        ValidatesOnExceptions = true;
        NotifyOnValidationError = true;
    }
}

   xmlns:myBinding="clr-namespace:WpfApplication2">
<Grid>
    <TextBox Text="{myBinding:TextBinding Path=SomeProperty}"/>
</Grid>

现在,您可以将此方式绑定到所有文本框,而无需设置上述4个绑定属性,它们将自动应用。我希望这会帮助你了解一下。