<分区>
我只是对将数据绑定(bind)到组合框(或我猜的其他可绑定(bind)对象)背后的一些编码实践感到好奇。 假设我已经创建了一个对象,我想将它们中的一堆添加到一个组合框中。 所以我创建了我的对象并赋予它一些属性。
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”或其他东西),那么组合框绑定(bind)就会中断。而且它仍然会编译,所以在加载带有组合框的表单之前没有人会注意到。 同样,您将无法使用“查找引用”找到该属性的用途,因为它只是一个字符串。
人们对此有何看法?如何使用它并仍然保持代码的可维护性?