从控件添加Item到ItemsSource

时间:2011-03-11 09:17:46

标签: wpf

控件具有IEnumerable类型的ItemsSource属性。如果我在设置ItemsSource时尝试向Items集合添加项目,则会收到错误“当ItemsSource正在使用时,操作无效。请改为使用ItemsControl.ItemsSource访问和修改元素。”

此处提供了删除项目的方法: WPF - Best way to remove an item from the ItemsSource

但是我找不到一个方法(基于相同的界面)来添加新的Item。 AddNew方法不接受任何参数。从以下示例:http://msdn.microsoft.com/en-us/library/system.componentmodel.ieditablecollectionview.canaddnew.aspx我觉得这是正确的代码:


IEditableCollectionView items = paneToDropInto.Items;
                if (items.CanAddNew)
                {
                    object newitem = items.AddNew();
                    newitem = contentToTransfer;
                    items.CommitNew();                    
                }

然而它不起作用。它确实添加了新项目。但这是一个空白的项目。注意contentToTransfer。

1 个答案:

答案 0 :(得分:2)

想出来。正如汤姆和杰瑞+1所指出的那样(谢谢)。我只是重新引用新项目,这不会导致AddNew生成的原始新项目被保存(非常愚蠢)。

然而,我可以使用另一个界面(并且确实使用过):


IEditableCollectionViewAddNewItem items = paneToDropInto.Items;
if (items.CanAddNewItem)
{
    object newitem = items.AddNewItem(contentToTransfer);                    
}