如何将KVP字典内自定义类的属性设置为ComboBox的DisplayMember
这个需求可以直接实现,不需要额外生成专供ComboBox使用的列表。
字典绑定到BindingSource后,每一条数据项都是KeyValuePair<int, BooksInv>结构,你要展示的Title是该结构下Value属性的子属性,只需给DisplayMember传入嵌套属性路径即可,正确写法如下:
Dictionary<int, BooksInv> books = new Dictionary<int, BooksInv>(); // 其他给字典赋值的业务逻辑 cmbBx1.DisplayMember = "Value.Title"; // 可选配置:设置ValueMember为字典的键,方便后续直接取选中项对应的int主键 cmbBx1.ValueMember = "Key"; cmbBx1.DataSource = new BindingSource(books, null);
如果后续需要获取选中项的信息,可以用以下两种方式:
- 获取选中项对应的字典主键:
int selectedKey = (int)cmbBx1.SelectedValue; - 获取选中项对应的完整
BooksInv对象:BooksInv selectedBook = (BooksInv)((KeyValuePair<int, BooksInv>)cmbBx1.SelectedItem).Value;
内容的提问来源于stack exchange,提问作者KEYS
相关产品推荐
相关产品推荐

