【问题标题】:Removing items from a observablecollection bound to a datagrid Silverlight?从绑定到数据网格 Silverlight 的 observablecollection 中删除项目?
【发布时间】:2012-02-08 11:10:04
【问题描述】:

从绑定到 silverlight 中的数据网格的 observablecollection 中删除行时出现错误。

System.NullReferenceException:对象引用未设置为 System.Collections.ObjectModel.ObservableCollection`1.RemoveItem(Int32 index) 处的 object.at 实例

if (GV.orderItemList.Contains(oOrdritem))
    GV.orderItemList.Remove(oOrdritem);

第一次,我删除了一条记录,它工作正常,第二次,它给出了上述异常

请帮忙

【问题讨论】:

  • 例如,如果绑定到 ListBox 会发生什么?删除时有多少行?怀疑是DataGrid中的问题...您可以尝试设置DataGrid ItemsSource = null,首先,重新绑定它...另外,当您执行删除时,您的行似乎处于编辑模式,尝试它没有处于编辑模式

标签: c# silverlight datagrid observablecollection


【解决方案1】:

尝试使用 RemoveAt 而不是 Remove,它在某些情况下对我有用。首先你找到de item的索引:

int index = collection.IndexOf(item);

然后你尝试删除:

collection.RemoveAt(index);

【讨论】:

    【解决方案2】:

    做一个空检查:(或几个,不确定你的代码的其余部分是什么样的,所以我正在强制执行一切)

    if (GV != null && GV.orderItemList != null && oOrdritem != null && GV.orderItemList.Contains(oOrdritem))
        GV.orderItemList.Remove(oOrdritem);
    

    【讨论】:

      【解决方案3】:

      我使用下面的代码对问题进行了排序:

      dgOrderItems.CommitEdit(DataGridEditingUnit.Row, true);
      

      当前关注的行仍处于导致异常的编辑模式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-24
        • 2013-10-07
        • 1970-01-01
        • 1970-01-01
        • 2012-03-04
        • 2010-12-10
        相关资源
        最近更新 更多