WPF 바인딩 stringformat는 첫 번째 문자 만 표시합니다
-
18-09-2019 - |
문제
텍스트 블록에 바운드 문자열의 첫 번째 문자 만 표시 할 수있는 방법이 있습니까?
예를 들어; 내가 '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}...
제휴하지 않습니다 StackOverflow