假设我有以下课程:
public class Values {
public string Value1 {get;set;}
public string Value2 {get;set;}
public string Value3 {get;set;}
}
现在我想使用 IValueConverter 以特定顺序将此对象的值绑定到 GUI 组件的 ItemsSource:
public class ValuesToListConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var valuesObj = (Values ) value;
yield return valuesObj.Value1;
yield return valuesObj.Value3;
yield return valuesObj.Value2;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
但是当我这样做时,我收到以下错误:
'Convert' 的主体不能是迭代器块,因为 'object' 不是迭代器接口类型。
有没有办法在 IValueConverter 中懒惰地创建这个列表?还是我必须这样做:
return new List<string> { valuesObj.Value1, valuesObj.Value3, valuesObj.Value2 }