0

次のクラスがあるとします。

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' の本体を反復子ブロックにすることはできません。

IValueConverter でこのリストを遅延作成する方法はありますか? または、私はしなければなりませんか:

return new List<string> { valuesObj.Value1, valuesObj.Value3, valuesObj.Value2 }
4

1 に答える 1