у меня есть поле со списком, которое привязано к столбцу данных, например:
ComboBox.DataContext = DataDataTable;
ComboBox.DisplayMemberPath = DataDataTable.Columns["IDNr"].ToString();
IDNr в столбце всегда начинается с 4 букв, за которыми следует идентификационный номер (например, BLXF1234). Мне нужно отобразить элементы в поле со списком без букв (мне нужно, чтобы в поле со списком отображалось 1234).
Итак, я написал конвертер:
class IDPrefixValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value != null)
{
string s = value.ToString();
if (s.Contains("BL"))
{
return s.Substring(4);
}
else
{
return s;
}
}
return "";
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotSupportedException();
}
Нет, как я могу указать выпадающему списку использовать конвертер для отображения элементов? я пробовал это в Xaml:
ItemsSource="{Binding}"
DisplayMemberPath="{Binding Converter={StaticResource IDPrefixValueConverter}}"
Но все еще не работает ... есть идеи? Спасибо
DisplayMemberPath
– это путь к свойству для отображения даже не привязки. Если вы примените конвертер там, вы ничего не добьетесь. - person H.B.   schedule 26.02.2012