在组合框中使用绑定项的转换器

9 浏览
0 Comments

在组合框中使用绑定项的转换器

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

但仍然不起作用...有什么想法吗?

谢谢

0