およびプロパティを指定せずにASP.NETListControlにバインドする方法はありますか?たぶん、ListControlがどのプロパティがテキストでどの値がどれであるかを推測できるようにするクラスはありますか?DataTextField
DataValueField
毎回これらのプロパティを指定しなければならないことは、過去にタイプミスの問題を引き起こしていました。毎回同じオブジェクトタイプのコレクションにバインドし、フィールドのプロパティを完全に無視できれば役立つと思います。
およびプロパティを指定せずにASP.NETListControlにバインドする方法はありますか?たぶん、ListControlがどのプロパティがテキストでどの値がどれであるかを推測できるようにするクラスはありますか?DataTextField
DataValueField
毎回これらのプロパティを指定しなければならないことは、過去にタイプミスの問題を引き起こしていました。毎回同じオブジェクトタイプのコレクションにバインドし、フィールドのプロパティを完全に無視できれば役立つと思います。
このようなコントロールが必要な場合は、ListBox
デフォルトを想定するようにクラスを拡張できます。
割り当てられたデータ型のDataSource
およびのリフレクションを使用します。GetProperties
必要に応じてデフォルトを想定します。最初のプロパティをkey(DataValueField
)と言い、最後のプロパティをvalue(DataTextField
)と言います。
いいえ、これを自動的に「推測」する方法はありません。
のコレクションにバインドしていると想像してくださいPerson
。PersonクラスにはId, Name, Address, City, State, Zip, Email
、などがあります。多くの有効なシナリオでは、代わりにとを表示する必要がある場合があるため、クラスはプログラマーの心を読み取って、プログラマーが実際にとをそれぞれにListBox
使用したいと判断することはできません。Id
Name
Value
Text
Phone
Id
少なくとも一度ページを実行すると、存在しないプロパティにバインドしようとするとすぐにエラーが発生するため、これは誰にとっても問題にはなりません。