TextBlock StringFormat修剪零

时间:2017-09-04 09:08:21

标签: c# wpf xaml binding string-formatting

我有一个带有TextBlock的WPF项目和一个数字绑定 比如"0009012",但我想只显示90120881012 如果必须显示881012

是否有使用StringFormat的方法或者我必须编写转换器 那个?

这是我的代码:

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <TextBlock Text="{Binding Test}" StringFormat={}{????}/>
</Grid>
</Window>
using System.Windows;

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public string Test { get; set; }

        public MainWindow()
        {
            Test = "00090012";

            InitializeComponent();
            DataContext = this;
        }
    }
}

3 个答案:

答案 0 :(得分:0)

  

StringFormat是否有办法,或者我必须为此编写Converter

后者。

您无法在XAML中应用StringFormat从数字中删除所有前导零。另请注意,StringFormat未应用于string值。

您可以编写一个转换器,例如在TrimStart("0")上调用string,或者只是从绑定到的视图模型的source属性返回已修剪的值。

答案 1 :(得分:-1)

Test = Convert.ToInt32(Test).ToString();

转换为整数将删除所有初始0s,然后您可以使用ToString方法将其转换回字符串。

答案 2 :(得分:-2)

int integer = int.Parse(String.ToString()); 试试这个方法