在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}}"
但仍然没有工作……任何想法? 谢谢
您可以修改ComboBox
的ItemTemplate
并使用您的转换器:
每个项目都绑定到ItemsSource
的项目。 通过在绑定中使用转换器,您可以执行所需的转换。