ho una casella combinata che è legato a una colonna DataTable come questo:.Usa convertitore su oggetti legati a combobox
ComboBox.DataContext = DataDataTable;
ComboBox.DisplayMemberPath = DataDataTable.Columns["IDNr"].ToString();
L'IdNr nella Colonna inizia sempre con 4 lettere seguito con il numero ID (ex BLXF1234). Ho bisogno di visualizzare gli elementi in Combobox senza le lettere (ho bisogno di 1234 per essere visualizzato nella casella combinata).
Così ho scritto un convertitore:
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();
}
No, come posso dire la casella combinata di utilizzare il convertitore per visualizzare gli articoli? Ho provato questo nel Xaml:
ItemsSource="{Binding}"
DisplayMemberPath="{Binding Converter={StaticResource IDPrefixValueConverter}}"
Ma ancora non funziona ... tutte le idee? Grazie
mmm ... ancora non so dove si trova l'errore ... – lebhero
'DisplayMemberPath' è un ** percorso di una proprietà ** per visualizzare nemmeno un binding. Se applichi il convertitore, non ottieni nulla. –
ok, grazie comunque iam controllando cosa dovrebbe essere la formattazione degli elementi della casella combinata !!!? – lebhero