C# 如何在XAML中格式化此字符串?

C# 如何在XAML中格式化此字符串?,c#,wpf,winforms,xaml,devexpress,C#,Wpf,Winforms,Xaml,Devexpress,我正在尝试将一个使用Winforms中的部件的程序转换为WPF。这部分我遇到了点麻烦。该程序执行以下操作: this.textBox.Properties.DisplayFormat.FormatString = "#,#;-#,#;-"; 我不确定这是做什么的,我正在努力将它转换为WPF的XAML。我知道我必须在这里设置它: Text="{Binding x, Mode=OneWay, StringFormat={}{...}}"/> 但是我不

我正在尝试将一个使用Winforms中的部件的程序转换为WPF。这部分我遇到了点麻烦。该程序执行以下操作:

this.textBox.Properties.DisplayFormat.FormatString = "#,#;-#,#;-";
我不确定这是做什么的,我正在努力将它转换为WPF的XAML。我知道我必须在这里设置它:

Text="{Binding x, Mode=OneWay, StringFormat={}{...}}"/>
但是我不确定什么是等价的,因为
,--不起作用。谢谢你的帮助!:)

根据,您的原始格式字符串是:

  • 您希望正小数看起来像整数#,#(例如:1234.5看起来像1234)
  • 您希望负小数看起来像整数-#,#(例如:-1234.5看起来像-1234)
  • 您希望零看起来像-(示例:-)
  • 对于WPF,您可以使用这些相同的字符串格式说明符,但是您需要使用
    {}
    预先挂起格式。这是必需的,否则WPF将与其他标记扩展混淆

    下面是一个例子:

    Main.xaml

    <StackPanel>
        <TextBlock Text="{Binding Value1, StringFormat={}{0:#,#;-#,#;-}}"/>
        <TextBlock Text="{Binding Value2, StringFormat={}{0:#,#;-#,#;-}}"/>
        <TextBlock Text="{Binding Value3, StringFormat={}{0:#,#;-#,#;-}}"/>
    </StackPanel>
    
    以下是最终输出:

    Text=“{Binding x,Mode=one-way,StringFormat={}{0:#,#-#-#-#-}”/>
    应该可以正常工作。请修改您的帖子,使其包含以a形式出现的实际代码,并精确解释该代码的作用、与您想要的不同之处以及您遇到的具体问题。
    public double Value1 { get; set; }
    public double Value2 { get; set; }
    public double Value3 { get; set; }
    public MainWindow()
    {
        InitializeComponent();
        Value1 = 1234567.890f;
        Value2 = -987654.321f;
        Value3 = 0;
        this.DataContext = this;
    }