【发布时间】:2016-01-04 23:31:16
【问题描述】:
我有一个包含组合框/下拉列表的用户控件。此用户控件被多次使用并动态添加到面板中。当我更改一个用户控件上的组合框的值时,它会更改其余部分吗?有谁知道如何排序?
所以澄清一下。当我更改顶部用户控件 (7002) 的组合框中的值时,它会将第二个用户控件组合框的值更改为我选择的任何值。
谢谢!
添加控件的代码;
foreach (Common.UserDTO UDTO in BLL.User.GetAllUsers())
{
Admin_UserControls.UserBar UB = new Admin_UserControls.UserBar(UDTO);
UB.Location = new Point(0, int.Equals(pnlUserBlock.Controls.Count, 0) ? 0 : pnlUserBlock.Controls[pnlUserBlock.Controls.Count - 1].Bottom);
pnlUserBlock.Controls.Add(UB);
}
构造函数/加载事件:
private Common.UserDTO UDTO;
public UserBar(Common.UserDTO UDTO)
{
InitializeComponent();
/* Store the passed in UserDTO */
this.UDTO = UDTO;
}
private void UserBar_Load(object sender, EventArgs e)
{
/* Setup the Drop down list */
cbRanks.DataSource = Common.Helper.GetRanksDT();
cbRanks.DisplayMember = "Rank";
cbRanks.ValueMember = "ID";
/* Setup the users */
lblUsername.Text = UDTO.Username;
cbRanks.SelectedValue = UDTO.RankID;
}
【问题讨论】:
-
能否提供代码?
-
在动态添加 UserControl 时,您是否重用了同一个实例?
-
添加了一些代码。 @haddow64 我没有使用同一个实例,不,每次都创建一个新实例。
-
很可能是
cbRanks.DataSource = Common.Helper.GetRanksDT();,如果您将 UserControl 的每个实例绑定到应该修复它的单独数据源,请参阅https://stackoverflow.com/questions/11261468/why-changing-selecteditem-in-one-combo-changes-all-other-combos -
@haddow64 是的,它已经排序了,干杯伙伴!