Unter Bezugnahme auf meine anderen question:DataGridComboBoxColumn Converter Bindung nicht wie erwartet funktioniert
Ich habe diese DataGridComboBoxColumn:
<DataGridComboBoxColumn Header="Master" SelectedItemBinding="{Binding MasterId}" SelectedValueBinding="{Binding Id}" DisplayMemberPath="Id" ItemsSource="{Binding Data.Masters, Converter={converters:SimpleComboItemConverter}, Source={StaticResource proxy}}" />
Ich habe diese IValueConverter für die Laufzeitfehler ausgelöst, wenn versucht, den Wert der speichern Reihe.
[ValueConversion(typeof(string), typeof(SimpleComboItem<>))]
public class SimpleComboItemConverter : MarkupExtension, IValueConverter
{
public static SimpleComboItemConverter converter;
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
if (null == converter)
{
converter = new SimpleComboItemConverter();
}
return converter;
}
}
aber wenn in ihm das Debuggen der Methode Konvertieren hat IEnumerable Objekte in Wert und kein string
und ein SimpleComboBoxItem<>
Die SimpleComboBoxItem Klasse es wirklich einfach und die ComboBox in der Spalte zeigt die richtigen Werte:
public class SimpleComboItem<T>
{
public T Value { get; set; }
public string Text { get; set; }
}
Was mache ich falsch?
'Data.Masters' ist ein IEnumerable und wird an das Argument' value' übergeben. Also, was erwartest du? – Clemens
Sie haben Recht, ich habe den Konverter an der falschen Stelle gesetzt, in der SelectedItemBinding funktioniert wie erwartet? –