2012-09-16 2 views
1

ICollectionView를 사용하여 ListView 내의 항목 목록을 표시하고 있습니다. 나는 해결책을 찾을 수없는 것 같은 문제에 직면했다.ICollectionView 키보드 인덱스가 새로 고침시 재설정됩니다.

선택 사항은 마우스 만 사용하는 한 제대로 작동합니다. 항상 최신 정보를 표시하기 위해 ICollectionView.Refresh() 메서드를 수시로 사용합니다. 그러나 이로 인해 키보드 화살표를 사용하여 항목 목록을 탐색 할 때 문제가 발생합니다.

현재 SelectedIndex가있는 위치와 관계없이 다음 번에 화살표 키를 누르면 Refresh()를 호출하자마자 선택한 항목이 ListView의 위치 0에있는 항목입니다.

이전에이 문제를 만난 사람이 있었는데이 문제에 대한 해결책을 찾았습니까? 당신이 목록보기를 새로 고침 할 때

답변

0

는이 작업을 수행 :

대신() 당신이 수집에 사용하는 클래스에서 INotifyPropertyChanged 인터페이스를 구현할 수 ICollectionView.Refresh를 호출
//store the selected items 
ListView.SelectedListViewItemCollection collection; 
collection = listView1.SelectedItems; 

// refresh the list view 
listView1.Refresh(); 

//now select them again 
foreach (ListViewItem item in collection) 
    item.Selected = true; 
0

. 표시되는 속성 중 하나가 변경 될 때마다 PropertyChanged를 호출하십시오.