Kha*_*ash 5 .net c# data-binding winforms
想象一下这两个类:
class Part
{
public string Name { get; set;}
public int Id { get; set; }
}
class MainClass
{
public Part APart { get; set;}
}
Run Code Online (Sandbox Code Playgroud)
如何将MainClass绑定到WinForm上的组合框,因此它显示Part.Name(DisplayMember = "Name";),并且组合的选定项设置MainClass的APart属性,而无需处理下拉列表中的任何事件.
据我所知,将ComboBox的ValueMember设置为"Id"意味着它将尝试将APart设置为不正确的数字(Id).
希望这很清楚!
您正在寻找的是让ValueMember(= ComboBox.SelectedItem) 成为对对象本身的引用,而DisplayMember是该项目的单个属性,对吗?据我所知,由于方式和工作ComboBox的原因,如果不创建自己的并自己进行绑定,就没有好的方法来做到这一点。ValueMemberDisplayMember
但是,您可以尝试以下几件事(假设您在某处有 s 的集合Part):
Part _APart;
object APart
{
get {return _APart;}
set {
if(value is int)
_APart = MyPartCollection.Where(p=>p.Id==value).Single();
else if(value is Part)
_APart = value;
else
throw new ArgumentException("Invalid type for APart");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2403 次 |
| 最近记录: |