2011-03-11 12 views
1

컨트롤에 IEnumerable 형식의 ItemsSource 속성이 있습니다. ItemsSource가 설정된 경우 Items 컬렉션에 항목을 추가하려고하면 "ItemsSource가 사용 중일 때 작업이 유효하지 않습니다. 대신 ItemsControl.ItemsSource를 사용하여 요소에 액세스하고 수정하십시오."라는 오류 메시지가 나타납니다. 제거 항목에 대한 컨트롤에서 ItemsSource에 항목 추가

방법

여기에 존재 : WPF - Best way to remove an item from the ItemsSource

그러나 나는 새로운 항목을 추가 (동일한 인터페이스를 기반으로)하는 방법을 찾을 수 없습니다. AddNew 메서드는 인수를 사용하지 않습니다. 의 샘플에서 :

 

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

그러나이 작동하지 않습니다 http://msdn.microsoft.com/en-us/library/system.componentmodel.ieditablecollectionview.canaddnew.aspx 나는 올바른 코드가이 느꼈다. 새 항목을 추가합니다. 하지만 그것은 빈 항목입니다. contentToTransfer를 참고하십시오.

+0

어떤 데이터 타입/객체가 contentToTransfer입니다 :

그러나 내가 사용할 수있는 또 다른 인터페이스 (그리고 한 사용)이있다? – Terry

+1

contentToTransfer 란 무엇입니까? 당신이 newitem 변수를 다시 참조하는 것 같아요. 그리고 실제로 아무 것도하지 않습니까? – Tom

+1

톰, 빈 새 항목에 바인딩에 동의합니다 ... – Terry

답변

2

알아 냈어. Tom과 Djerry가 지적한 것처럼 +1 (감사). 나는 AddNew에 의해 생성 된 원래의 새 항목을 저장하지 않을 새 항목을 참조하고 있습니다. (매우 어리 석다).

 

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