2010-01-05 13 views

Répondre

13

Vous pouvez utiliser un convertisseur de valeur pour retourner un préfixe de chaîne:

class PrefixValueConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     string s = value.ToString(); 
     int prefixLength; 
     if (!int.TryParse(parameter.ToString(), out prefixLength) || 
      s.Length <= prefixLength) 
     { 
      return s; 
     } 
     return s.Substring(0, prefixLength); 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     throw new NotSupportedException(); 
    } 
} 

Et en XAML:

<Window.Resources> 
    ... 
    <local:PrefixValueConverter x:Key="PrefixValueConverter"/> 
</Window.Resources> 
... 
...{Binding Path=TheProperty, Converter={StaticResource PrefixValueConverter}, 
           ConverterParameter=1}... 
+1

Au lieu de lancer 'NotImplementedException' dans ConvertBack, lancez' NotSupportedException'. NIE est pour le code qui n'est pas encore implémenté mais le sera bientôt. Ici: http://stackoverflow.com/questions/410719/notimplementedexception-are-they-kidding-me –

+0

TBH, Il n'a en fait pas encore été implémenté, en suivant vos conseils, il est maintenant :) –

+0

Oui ... merci Aviad, en fait Je cherchais à éviter d'utiliser un convertisseur. Mais il semble qu'il n'y ait aucun moyen de contourner ... thx – biju