basarat
basarat

Reputation: 276171

Adding an Item to ItemsSource from a control

A control has an ItemsSource Property of type IEnumerable. If I try to add items to Items collection when ItemsSource is set I get an error "Operation is not valid while ItemsSource is in use. Access and modify elements with ItemsControl.ItemsSource instead."

A method for Removing Items is present here: WPF - Best way to remove an item from the ItemsSource

However I cannot find a method to (based on the same interface) to add a new Item. The AddNew method does not take any arguments. From the sample at : http://msdn.microsoft.com/en-us/library/system.componentmodel.ieditablecollectionview.canaddnew.aspx I felt this to be the correct code:


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

However it does not work. It does add the new item. But it is a blank Item. Note contentToTransfer.

Upvotes: 1

Views: 4858

Answers (1)

basarat
basarat

Reputation: 276171

Figured it out. As pointed out by Tom and Djerry +1 both (thanks). I am just re referencing the new item which will not cause the original new item generated by AddNew to be saved (very stupid of me).

However there is another interface I can use (and did use):


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

Upvotes: 2

Related Questions