문제

텍스트 블록에 바운드 문자열의 첫 번째 문자 만 표시 할 수있는 방법이 있습니까?

예를 들어; 내가 'male'을 묶으면 내 텍스트 블록이 'm'만 표시해야합니다 .....

도움이 되었습니까?

해결책

값 변환기를 사용하여 문자열 접두사를 반환 할 수 있습니다.

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();
    }
}

그리고 XAML에서 :

<Window.Resources>
    ...
    <local:PrefixValueConverter x:Key="PrefixValueConverter"/>
</Window.Resources>
...
...{Binding Path=TheProperty, Converter={StaticResource PrefixValueConverter},
                              ConverterParameter=1}...
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top