C# 如何在XAML中格式化此字符串?
我正在尝试将一个使用Winforms中的部件的程序转换为WPF。这部分我遇到了点麻烦。该程序执行以下操作: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={}{...}}"/> 但是我不
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;
}