繁体   English   中英

绑定后在ListBox中添加项目或从ListBox中删除项目

[英]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对这些项进行了硬编码,并且未设置lstGivenPermissionsdatasource ,那就很好了。 但是在将数据绑定到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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM