控件具有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。
答案 0 :(得分:2)
想出来。正如汤姆和杰瑞+1所指出的那样(谢谢)。我只是重新引用新项目,这不会导致AddNew生成的原始新项目被保存(非常愚蠢)。
然而,我可以使用另一个界面(并且确实使用过):
IEditableCollectionViewAddNewItem items = paneToDropInto.Items;
if (items.CanAddNewItem)
{
object newitem = items.AddNewItem(contentToTransfer);
}