2017-09-04 84 views
0

我有一個WPF項目與一個TextBlock並綁定到多個 像"0009012"但我想只顯示90120881012 如果必須表明881012TextBlock中的StringFormat修剪零

有沒有一種方法與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; 
     } 
    } 
} 
+2

'「00090012」'不是數字。它是一個字符串。它按原樣顯示。 – ASh

+0

你可以嘗試'StringFormat = {} {0:0}}「'看看有什麼顯示嗎? –

+0

*」有沒有StringFormat的方法,或者我必須寫一個轉換器?「*必須編寫一個轉換器。 –

回答

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

轉換爲整數,將刪除所有初始0s,然後你可以用ToString方法將其轉換回字符串。

+0

我必須在WPF/XAML中執行它。抱歉,我沒有說清楚。因爲它是一個PrintLayout,它在運行時加載 –

-2

int integer = int.Parse(String.ToString()); 試試這個方法

0

是否與StringFormat辦法還是我寫了一個Converter

後者。

沒有StringFormat您可以在XAML中應用從數字中刪除所有前導零。另請注意,StringFormat不適用於string值。

您可以編寫一個轉換器,例如在string上調用TrimStart("0")或簡單地返回已綁定的視圖模型的源屬性中已修剪的值。