在组合框中使用绑定项的转换器
在组合框中使用绑定项的转换器
我有一个绑定到DataTable列的ComboBox,代码如下:
ComboBox.DataContext = DataDataTable;
ComboBox.DisplayMemberPath = DataDataTable.Columns["IDNr"].ToString();
该列中的IDNr始终以4个字母开头,后跟ID号码(例如BLXF1234)。
我需要在ComboBox中显示项时去掉这些字母(我希望在ComboBox中显示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();
}
}
现在,我如何告诉ComboBox使用该转换器来显示项?
我在Xaml中尝试了以下代码:
ItemsSource="{Binding}"
DisplayMemberPath="{Binding Converter={StaticResource IDPrefixValueConverter}}"
但仍然不起作用...有什么想法吗?
谢谢