也许这对你们 .NET 人来说是一个非常简单的问题,但由于我来自 MFC C++ 开发团队,这种行为让我们的开发团队都想知道发生了什么。(在 MFC 中,当我们创建下拉数据源时,源是共享的,但每个下拉列表的值不受影响)
这是一个非常简单的情况。我的表格中有 3 个要求街道的下拉列表。您所在的街道和其他 2 条最近的街道。这些下拉列表中的每一个都具有相同的数据源。所以我们所做的是(顺便说一句,ComboList 只是一个继承 ListItem 并具有更多功能的类)
//Combo Street
ComboList cboNomRue = new ComboList();
Tools.GetCombo(cboNomRue, Tools.ComboTypeRt.RT_NOM_RUE, true, true);
ddlNomRue.DisplayMember = "Numero";
ddlNomRue.ValueMember = "ID";
ddlNomRue.DataSource = cboNomRue;
//Combo Street From
ddlDe.DisplayMember = "Numero";
ddlDe.ValueMember = "ID";
ddlDe.DataSource = cboNomRue;
//Combo Street To
ddlA.DisplayMember = "Numero";
ddlA.ValueMember = "ID";
ddlA.DataSource = cboNomRue;
使用此代码,当用户更改 ddlNomRue 中的值时,3 下拉列表更改为该值!所以为了解决这个问题,我做到了。
//Combo Street
ComboList cboNomRue = new ComboList();
Tools.GetCombo(cboNomRue, Tools.ComboTypeRt.RT_NOM_RUE, true, true);
ddlNomRue.DisplayMember = "Numero";
ddlNomRue.ValueMember = "ID";
ddlNomRue.DataSource = cboNomRue;
ComboList cboNomRue2 = new ComboList(cboNomRue);
ComboList cboNomRue3 = new ComboList(cboNomRue);
//Combo Street From
ddlDe.DisplayMember = "Numero";
ddlDe.ValueMember = "ID";
ddlDe.DataSource = cboNomRue2;
//Combo Street To
ddlA.DisplayMember = "Numero";
ddlA.ValueMember = "ID";
ddlA.DataSource = cboNomRue3;
我不喜欢这样,因为当真正需要一个变量时它会复制变量。这是处理这种情况的好方法还是我还能做些什么?
谢谢