我只是对将数据绑定到组合框(或我猜的其他可绑定对象)背后的一些编码实践感到好奇。假设我创建了一个对象,我想将它们添加到组合框中。所以我创建了我的对象并给它一些属性。
public class ObjectForList
{
public string ObjectName { get; set; }
public int ObjectID { get; set; }
public string SomeOtherProperty { get; set; }
public ObjectForList()
{
}
}
因此,我列出了它们并将其设置为我的组合框的来源
List<ObjectForList> myObjects= new List<ObjectForList> { ...bunch of ObjectForList objects...};
comboBox1.DataSource = myObjects;
comboBox1.DisplayMember = "ObjectName";
comboBox1.ValueMember = "ObjectID";
我就是这么理解的,至少应该这样做。我在网上找到的所有解释中都看到了该实现。
但是让显示和值成员作为变量名称的硬编码字符串对我来说似乎并不容易。如果几年后有人在 Visual Studio 中出现并重构 ObjectID 属性(成为“MyID”或其他东西),那么组合框绑定将会中断。而且它仍然会编译,所以在加载带有组合框的表单之前没有人会注意到。同样,您将无法使用“查找引用”找到该属性的用途,因为它只是一个字符串。
人们对此有何看法?如何使用它并保持代码可维护?