0

我正在创建一个包含许多文本框的表单,这些文本框具有如下声明的文本属性:

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 的正确语法 - 或者任何人都可以建议我如何做我正在尝试的事情?

欢呼和蒂亚

麦克莱克斯

4

1 回答 1

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 个绑定属性,它们将自动应用。我希望这会帮助你得到一个想法。

于 2012-07-24T08:08:01.930 回答