2011-03-27 5 views
0

현재 itemsCollection 및 historyCollection이 있습니다. 둘 다 분리 된 .dat 파일입니다.여러 격리 된 저장소에서 삭제 - windows phone 7

이러한 격리 된 저장소에서 저장 및 표시가 제대로 작동하지만 itemCollection에서 항목을 삭제하려고 할 때 문제가 발생합니다. 또한 historyItemCollection에서 해당 itemIndex가 포함 된 모든 항목을 제거하려고합니다. .

업데이트 :

  • B
  • C

historyItemCollection는 다음과 같이 수 :

itemCollection이 같은 것을 포함 할 수있다

  • B
  • C B

  • 그래서 (itemIndex라는 1) 다음에 I가 모두 historyItemCollection에서 제거 할 경우 B를 제거.

    itemCollection에서 항목을 제거 할 수 있지만 historyItemCollection에서 오류가 발생합니다.

     int i = 0; 
         for (i = 0; i <= App.ViewModel.historyItemCollection.Count-1; i++) 
         { 
          if (App.ViewModel.historyItemCollection[i].VehicleId == (Application.Current as App).vehicleIndex) 
          { 
           App.ViewModel.historyItemCollection[i].Remove(i); 
          } 
         } 
    
         App.ViewModel.vehicleItemsCollection[(Application.Current as App).vehicleIndex].Remove((Application.Current as App).vehicleIndex); 
    

    내가지고있어 오류 메시지 : 매개 변수 이름 : 인덱스 그것은이 라인에 실패

    : 당신이 정말로에이 두 가지를 뜻

    App.ViewModel.historyItemCollection[i].Remove(i); 
    
  • +0

    어느 라인이 실패 않습니다 참조? –

    +0

    @Matt - 전체 질문을 업데이트했습니다. 내 컬렉션에서 반복하면서 (마지막 예제에서 오류가 발생합니다). 첫 번째 제거 괜찮 았는데 ... – webdad3

    답변

    1

    이 라인에서 itemIndex이 될까요? 또한

    App.ViewModel.historyItemCollection[(Application.Current as App).itemIndex].Remove((Application.Current as App).itemIndex); 
    

    , RefreshItems()itemIndex에 미치는 영향은 한 호출합니까?

    코드를 더 많은 줄로 나누어서 한 번씩 단계별로 실행하는 것이 좋습니다.


    이외에도이 메서드에서 DataContext를 설정하는 이유는 무엇입니까? 그렇다면 왜 당신은 두 번 - 그리고 매번 다른 유형의 물체에 대해서도 설정하고 있습니까? 이것은 비정상적인 것 같습니다. 아마도 대신 History와 Items를 자식으로 가지는 새로운 ViewModel 클래스에 DataContext를 전역으로 설정할 수 있습니까?

    +0

    삭제와 관련하여 아무것도하지 않기 때문에 나는 RefreshItems와 DataContext를 꺼냈다. 그것은 코드 위에 남았습니다. – webdad3

    +0

    여전히 같은 줄에있는 두 itemIndex 값이 잘못된 것처럼 보입니다. – Stuart

    +0

    질문과 코드가 업데이트되었습니다. – webdad3

    1

    문제는 앞으로 반복 할 때 목록에서 항목을 제거한다는 것입니다.
    목록에서 항목을 삭제하면 목록의 총 항목 수와 상대 위치가 무효화됩니다.

    이 방법으로 목록을 편집해야하는 경우 색인을 생성하지 않도록 뒤로 이동해야합니다.

    How to remove elements from a generic list while iterating over it?

    +0

    자원에 감사드립니다. 목록을 반복하는 방법이 문제였습니다. – webdad3