0

私はこのバインディングを持っています

 <TextBlock HorizontalAlignment="Center" Text="{Binding Client.Name}" Grid.Column="1"/>

ここで、文字列バインディングのサイズを制限したいと思いました。例:Client.Nameが50文字の場合、25文字のみを表示したいと思います。

どうすればこれを制限できますか?

4

1 に答える 1

4

値コンバーターを使用してこれを試すことができます。

このようなもの(開発マシンから離れているため、これはメモリからのものであるため、微調整が必​​要になる場合があります)。

public class StringLengthConverter : IValueConverter
{
    public int Length { get; set; }

    public object Convert(object value, Type targetType, 
        object parameter, CultureInfo culture)
    {
        return (string)value.SubString(0, this.Length);
    }

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

別の解決策は、必要な長さの文字列をviewModelから直接返すことです。たとえば、30文字の名前のクライアントがある場合、viewModelは最初の25文字を返すことができます。

public class ClientViewModel
{
    private string _name;

    public string Name
    {
        get 
        { 
            return _name.SubString(0, 25);
            // Notify property changed....
        }
    }
}
于 2012-09-11T19:34:41.967 に答える