これは私の質問だったので、それを解決してみんなと共有することにしました。リストで検索するには<classtype> Cのクラスの動的フィールド名で
私は私のドライバクラスのリストを持っています。私はDBからデータをロード
は、その後のDataGridViewに表示:コンボボックスで
List<driver> list = DriverList();
dgvListDrivers.DataSource = list;
負荷フィールド名:以下
List<ColNameText> l = new List<ColNameText>();
foreach (DataGridViewColumn item in dgvListDrivers.Columns)
{
ColNameText cnt=new ColNameText();
cnt.colname=item.Name;
cnt.displaytext=item.HeaderText;
l.Add(cnt);
}
comboBoxEx1.DataSource=l.ToList();
comboBoxEx1.DisplayMember = "displaytext";
がColNameTextクラスDefinatonです:今、私が欲しい
class ColNameText
{
public string colname { get; set; }
public string displaytext { get; set; }
}
ドライバクラスプロパティによってリスト内を検索できるようにする。
私が検索した解決策はたくさんありましたが、私が望む方法ではありませんでした。
注:あなたが生のリフレクションを使用する場合は、*本当に*(メンバーのルックアップ、すなわち 'VARプロパティ= typeof演算を掲げなければなりませんドライバ).GetProperty(p.colname) 'を起動時のどこかに置いて、それを何度も使用してください。完璧な世界では、 'GetGetMethod()'と 'Delegate.CreateDelegate'を使ってそれをさらに最適化します: –