tôi có một combobox được ràng buộc với một cột DataTable như thế này:.Sử dụng chuyển đổi vào các mặt hàng bị ràng buộc trong combobox
ComboBox.DataContext = DataDataTable;
ComboBox.DisplayMemberPath = DataDataTable.Columns["IDNr"].ToString();
Các IDNr trong Cột luôn luôn bắt đầu với 4 chữ cái theo sau với số ID (ví dụ BLXF1234). Tôi cần hiển thị các mục trong Combobox không có Chữ cái (tôi cần 1234 được hiển thị trong hộp tổ hợp).
Vì vậy, tôi đã viết một chuyển đổi:
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();
}
Không, làm thế nào tôi có thể nói với combobox để sử dụng bộ chuyển đổi để hiển thị các mục không? tôi đã cố gắng này trong XAML:
ItemsSource="{Binding}"
DisplayMemberPath="{Binding Converter={StaticResource IDPrefixValueConverter}}"
Nhưng vẫn không làm việc ... bất kỳ ý tưởng? Cảm ơn
mmm ... vẫn không biết lỗi ở đâu là ... – lebhero
'DisplayMemberPath' là một đường dẫn ** đến thuộc tính ** để hiển thị không phải là một ràng buộc. Nếu bạn áp dụng công cụ chuyển đổi, bạn sẽ không đạt được gì. –
ok, cảm ơn anyway iam kiểm tra những gì nên được định dạng các mục combobox !!!? – lebhero