Использование конвертера значений было бы правильным путем, потому что в случае необходимости оно может использоваться в других местах вашего кода.
Вот быстрый, который я бросил вместе с помощью Regex, чтобы найти первые буквы (обратите внимание, что разделение строки обеспечит лучшую производительность).
public class InitialsConverter : IValueConverter
{
public virtual object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string str = value as string;
if (str != null)
{
string s = "";
MatchCollection matches = Regex.Matches(str, @"(\b\w)");
foreach (Match m in matches)
s += m.Value;
return s;
}
else
{
return null;
}
}
public virtual object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
Использование:
<!--Declare in your scope's resources-->
<Window.Resources>
<r:InitialsConverter x:Key="initials"/>
</Window.Resources>
<!--Bind to a string using the converter-->
<TextBlock Text="{Binding MyName, Converter={StaticResource initials}}"/>
Нет нейтрализатор:
Использование преобразователя:
поставить недвижимость в вас r ViewModel, в качестве быстрого решения, в противном случае реализует конвертер. Что вы пробовали? –