[英]Adding , removing items to and from a ListBox after binding
在以下按钮事件中,我将项目添加到另一个列表中的列表中。
private void btnAdd_Click(object sender, EventArgs e)
{
if (lstPermissions.SelectedItem != null)
if (!lstGivenPermissions.Items.Contains(lstPermissions.SelectedItem))
{
lstGivenPermissions.Items.Add(lstPermissions.SelectedItem);
}
}
如果在lstPermissions
对这些项进行了硬编码,并且未设置lstGivenPermissions
的datasource
,那就很好了。 但是在将数据绑定到lstGivenPermissions
,当我尝试执行此方法时,出现了此异常。
设置DataSource属性后,将无法修改项目集合。
我正在使用此属性将数据绑定到lstGivenPermissions
public List<string> GivenPermission
{
get { return lstGivenPermissions.Items.Cast<string>().ToList(); }
set { lstGivenPermissions.DataSource = value; }
}
我可以理解,数据绑定导致了此异常。 但是我的要求是我想从数据库lstGivenPermission
所有权限加载到lstPermissions
并将所选用户的权限加载到lstPermissions
。 然后,我应该能够在lstGivenPermissions
添加和删除项目。 你能让我知道怎么做吗?
您不应该使用属性绑定到列表控件...属性应该只保存/加载值,如下所示:
private List<string> _givenPermission;
public List<string> GivenPermission
{
get { return _givenPermission; }
set { _givenPermission = value;}
}
如果必须绑定,请尝试通过以下方式进行绑定:
private List<string> _givenPermission;
public List<string> GivenPermission
{
get { return _givenPermission; }
set { _givenPermission = value; lstGivenPermissions.DataSource = value; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.