Jey*_*han 3 .net data-binding refactoring strong-typing
询问有关对象数据源的问题.所以考虑一下我有一堂课
public class Customer{
public String name;
public int age;
public Customer(String name, int age) {
this.name = name;
this.age = age;
}
}
Run Code Online (Sandbox Code Playgroud)
我已经将列表框数据绑定到这些对象的列表中.所以我说
listBox.DisplayMember = "name";
Run Code Online (Sandbox Code Playgroud)
但我的问题是,当我将Customer类的名称重构为
public String fullName;
Run Code Online (Sandbox Code Playgroud)
DisplayMember仍然保持"名称".这将失败.所以它降低了我重构域对象的能力.这有什么办法吗?
这是一种更性感,更灵活的解决方案
片段...
总而言之,不是写作:
Run Code Online (Sandbox Code Playgroud)textBoxCustomerName.DataBindings.Add("Text", bindingSource, "CustomerName");我的建议是写下这样的东西:
Run Code Online (Sandbox Code Playgroud)dataSource.CreateBinding(textBoxCustomerName, ctl => ctl.Text, data => data.Name);这样,当您重构实体时,您的代码仍然可以正常运行(假设您将客户的
Name属性重命名为CompanyName).
很甜蜜呃?
此处还有一些解决方案如何使数据绑定类型安全并支持重构