我可以使用绑定限制字符串吗?

时间:2012-09-11 19:24:45

标签: wpf string binding format limit

我有这个约束

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

现在我想限制字符串绑定的大小 示例:如果Client.Name有50个字符,我只想显示25个字符

我该如何限制?

1 个答案:

答案 0 :(得分: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....
        }
    }
}