【发布时间】:2023-03-25 23:40:01
【问题描述】:
我想将业务对象列表绑定到 Winforms 控件(DataGridview、ComboBox 等)。
有几种方法可以做到这一点:
我可以为业务对象创建包装类并覆盖它们的ToString 方法实现。这对 ComboBox、ListBox Items.(Add|AddRange) 方法很有效。
但这不适用于 DataGridView。它需要 ObjectDataSource 在设计器模式下调整列。
由于应该有 ObjectDataSources(用于 DataGridViews)和包装类,我决定只留下一种方法。 ObjectDataSource 之一。
现在我有了用于数据绑定的 ObjectDataSources。当我使用向导时,它会将属性添加到我可以使用的表单中,如下所示:
MyObjectDataSoure.DataSource = list-of-entities;
这填充了底层的 winforms 控件。但是我也可以将实体列表直接分配给控件的数据源属性,并且填充将是相同的。
MyWinformsControl.DataSource = list-of-entities
是的,现在我没有 ObjectDataSource 事件,但我可能会想念更一般的东西吗?我应该避免收听winforms事件(选择更改,用户添加一行)并使用对象数据源吗?
使用对象数据源及其事件的最佳做法是什么?
提前感谢您!
【问题讨论】:
标签: .net winforms data-binding