过滤绑定列表,绑定不起作用

本文关键字:绑定 不起作用 列表 过滤 | 更新日期: 2023-09-27 18:05:33

在网格中,我使用绑定列表来绑定数据:

childBindingSource.DataSource = 
               db.Child.Local.ToBindingList()
                             .Where(child => selectedrow != null 
                                             && child.MasterID == selectedrow.ID)
                             .ToList();

或不带过滤器:

childBindingSource.DataSource = db.Child.Local.ToBindingList();

如果我使用where表达式过滤绑定列表,保存数据不起作用,但我没有得到任何异常。

任何想法?

获取子记录的行点击事件:

    private void gridView1_RowClick(object sender, RowClickEventArgs e)
    {
        selectedrow = gridView1.GetFocusedRow() as Master;
        if (selectedrow != null)
        {
            int id = selectedrow.ID;
            db.Child.Where(child => child.MasterID == id).Load();
        }

        childBindingSource.DataSource = db.Child.Local.ToBindingList();
    }

过滤绑定列表,绑定不起作用

DbSet.LocalObservableCollection,因此可以使用ToBindingList(),并且与网格的数据绑定是一个平滑的操作。

ToList只是创建一个List<T>和数据绑定不通信添加和删除列表(我希望更新工作虽然)。

补救方法是过滤上下文加载到Local列表中的数据:
db.Child.Where(child => selectedrow != null 
                     && child.MasterID == selectedrow.ID).Load();
childBindingSource.DataSource = db.Child.Local.ToBindingList();

这意味着您必须为您显示和更新的每一组子记录使用一个新的上下文。