私は非常に単純なことをやろうとしています - CheckedListBoxをオブジェクトのリストにバインドしてください。CheckedListBox DisplayMemberが表示されないのはなぜですか?
クラス定義
namespace Models
{
public class Department
{
public int ID { get; set; }
public string Description { get; set; }
}
}
問題
(最初にCheckedListBox clbDepartmentsを作成します)
に複製するための最小限の完全なコードサンプル
private void Form1_Load(object sender, EventArgs e)
{
List<Department> departmentList = new List<Department>();
departmentList.Add(new Department { ID = 1, Description = "HR" });
departmentList.Add(new Department { ID = 2, Description = "IT" });
departmentList.Add(new Department { ID = 3, Description = "Sales" });
var departmentBindingList = new BindingList<Department>(departmentList);
var departmentSource = new BindingSource(departmentBindingList, null);
clbDepartments.DisplayMember = "Description";
clbDepartments.ValueMember = "ID";
clbDepartments.DataSource = departmentSource;
}
リストが結合 - 私はList<Department>
の項目ごとにCheckboxList
で一つの項目を見ることができます。
フィールドの値(DisplayMember
)を表示する代わりに、各アイテムに"Models.Department"
と表示されます。
予想される出力
HR
IT
販売
法UAL出力
Models.Department
Models.Department
Models.Department
私が間違って何をしているのですか?
うーん。以前はこのコードを使用していました。アプリケーションが新しいバージョンのフレームワークにアップグレードされたかどうかはわかりません。バージョンに依存しているのだろうか? – Zesty
間違いなく、非常に奇妙な暗い魔法が続いています!これは2歳のアプリケーションで、上記のコードサンプルは古い形式で使用されていました。同じコードを新しいフォームにコピー&ペーストすると、上記の動作が発生しました。私は古いスクリーンを試してみましたが、今は同じ問題があります。 – Zesty