在combobox中使用转换器绑定项目

我有一个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}}" 

但仍然没有工作……任何想法? 谢谢

您可以修改ComboBoxItemTemplate并使用您的转换器:

        

每个项目都绑定到ItemsSource的项目。 通过在绑定中使用转换器,您可以执行所需的转换。