2
텍스트 블록에 바운드 문자열의 첫 번째 문자 만 표시 할 수있는 방법이 있습니까?Wpf 바인딩 첫 번째 문자 만 표시하도록 Stringformat
예를 들어, 만약 내가 바인딩 '남성', 내 된 본체는
텍스트 블록에 바운드 문자열의 첫 번째 문자 만 표시 할 수있는 방법이 있습니까?Wpf 바인딩 첫 번째 문자 만 표시하도록 Stringformat
예를 들어, 만약 내가 바인딩 '남성', 내 된 본체는
당신은 문자열 접두어 반환 값 계산기를 사용할 수 있습니다 ..... '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}...
ConvertBack에서 'NotImplementedException'을 throw하는 대신'NotSupportedException'을 throw하십시오. NIE는 아직 구현되지 않았지만 곧 구현 될 예정입니다. 여기 : http://stackoverflow.com/questions/410719/notimplementedexception-are-they-kidding-me –
TBH, 실제로 구현되지 않았습니다, 귀하의 조언을 복용, 지금은 :) –
예 .. 사실, Aviad, 실제로 나는 변환기를 사용하지 않으려 고했다.하지만 주변에 아무 것도없는 것처럼 보였다. thx – biju