通过Style在TextBox上设置WPF Binding.StringFormat属性

Mar*_*ner 7 data-binding wpf wpf-style

我有一个WPF应用程序包含许多TextBox具有不同类型的绑定的es,它们共享相同的StringFormat属性(它是一个技术应用程序,Textboxes应显示单位为"xxx mm"的值...)

我想在XAML/Designer中设置Binding,但我想避免在每个Binding上设置TextFormat属性.有没有办法使用样式?

如果我尝试在一个SetterText属性中设置Binding,就像

    <Style x:Name="mmtext" TargetType="TextBox" x:Key="mmtext">
        <Setter Property="Text" Value="{Binding Path=A,StringFormat={}{0} mm}" />
    </Style>
Run Code Online (Sandbox Code Playgroud)

我需要Path在Setters Value属性中提供一个,并且我无法在XAML本身中定义任何绑定(因为这会覆盖Style中设置的值).

有没有办法使用Style StringFormat在单个Binding中设置/修改属性(即Text属性的Binding )?

或者我是否需要寻找模板或自定义控件?

use*_*022 5

您可能可以绑定文本框的 DataContext 而不是 text 属性

 <TextBox DataContext="{Binding Path=A}" />
Run Code Online (Sandbox Code Playgroud)

然后使用像

<Style x:Name="mmtext" TargetType="TextBox" x:Key="mmtext">
    <Setter Property="Text" Value="{Binding Path=., StringFormat={}{0} mm}" />
</Style>
Run Code Online (Sandbox Code Playgroud)

对于双向绑定,您无论如何都需要一个转换器来摆脱额外的 mms