0

オブジェクトのリストに含まれるコレクション内のプロパティにドロップダウン リストをバインドしようとしています。

プロパティ コレクションを持つオブジェクトがあるので、オブジェクトの個々のインスタンスがある場合は、次のようにプロパティを呼び出すことができます。

MyObject.Properties["Title"].Value.ToString();

今、私は持っています

List<MyObject>

Properties["Title"].Value.ToString をドロップダウン リストの DataValueField にバインドしたいと思います。

dropDownList.DataSource = List<MyObject>
dropDownList.DataValueField = "Title";
dropDownList.DataBind();

Title は Properties コレクションにあり、オブジェクトのプロパティではないため、もちろんこれは機能しません。

dropDownList.DataValueField = "Properties[\"Title\"]"

Properties["Title"] もオブジェクトのプロパティではないため、これも機能しません。他のいくつかのバリエーションを試しましたが、うまくいきません。これを行う方法はありますか、それともオブジェクトを反復処理し、キーと値のペアのリスト\辞書を作成してそれを使用する必要がありますか? これを行う方法があるはずだと私には思えます。どんな助けでも大歓迎です

4

1 に答える 1

3

Linq Select を使用して匿名オブジェクトを設定するだけです。

dropDownList.DataSource = myObjectList
    .Select(item => new { Title = item.Properties["Title"] })
    .ToList();
dropDownList.DataValueField = "Title";
于 2013-08-08T22:37:49.760 に答える