2016-07-21 71 views
0

如何限制此TextBlock中的字符數?
例如:它最多隻能顯示5個字符。如何限制ValueConverter中的最大字符數

<TextBlock > 
    <Run Text="Tender Amount:"/> 
    <Run Text="{Binding TenderAmount, 
       Converter={StaticResource StringFormatConverter}, 
       ConverterParameter='{}{0:C}'}" /> 
</TextBlock> 

下面的代碼在我的轉換

public sealed class StringFormatConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, string language) 
    { 
     if (value == null) 
      return null; 

     if (parameter == null) 
      return value; 

     return string.Format((string)parameter, value); 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, 
     string language) 
    { 
     throw new NotImplementedException(); 
    } 
} 

回答

0

使用此:

public sealed class StringFormatConverter : IValueConverter 
{ 
    public int MaxLength { get; set; } 

    public object Convert(object value, Type targetType, object parameter, string language) 
    { 
     if (value == null) 
      return null; 

     if (parameter == null) 
      return value; 

     var result = string.Format((string)parameter, value); 

     if (MaxLength > 0) 
      result = result.Substring(0, MaxLength); 

     return result; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, 
     string language) 
    { 
     throw new NotImplementedException(); 
    } 
} 

如果你宣佈你的轉換器資源,做到這一點:

<stuff:StringFormatConverter x:Key="StringFormatConverter" MaxLength="5" /> 
+0

謝謝你,但即時獲得MaxLength不被識別或無法訪問的時候n我將其分配給我的資源 – Reaper

+0

請確保您重新編譯具有轉換器的項目,否則xaml解析器將不知道新的屬性在那裏。 –

+0

你是什麼意思重新編譯? – Reaper

相關問題