我正在创建一个包含大量文本框的表单,这些文本框具有如下所示的文本属性:
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的正确语法 - 或者有人可以建议我如何做我正在尝试的事情吗?
欢呼和tiamcalex
答案 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个绑定属性,它们将自动应用。我希望这会帮助你了解一下。