2016-10-13 6 views
0

ObservableCollectionからいっぱいのCollectionViewSourceのソートされたデータで塗りつぶされたListViewがあります。そのようにソートされたリストから選択した項目を削除した後、次の項目を選択します

<CollectionViewSource x:Key="cvsSortByName" Source="{Binding CountryData}"> 
    <CollectionViewSource.SortDescriptions> 
     <scm:SortDescription PropertyName="Name"/> 
    </CollectionViewSource.SortDescriptions> 
</CollectionViewSource> 

<ListView ItemsSource="{Binding Source={StaticResource cvsSortByName}}" SelectedItem="{Binding SelectedStuff}"/> 

ObservableCollectionからアイテムを削除する際に、ソート済みリストで次のアイテムを選択する方法を教えてください。例えば、我々は次のようしている:

index id name 
0  1 1 
1  3 3 
2  4 4 

は、私は1 3 3 SelectedStuffを作るにはどうすればよい

CountryData.Remove(item); 

のObservableCollection

から3 5 2を削除する2

index id name 
0  1 1 
3  5 2 - SelectedStuff 
1  3 3 
2  4 4 

を追加しますか?

答えて

0

SelectedIndexを使用できます。そうしよう。

int i = ListView.SelectedIndex; 
CountryData.Remove(item); 
ListView.SelectedIndex = i; 
+0

しかし、SelectedIndexは3になります。すべてのエラーチェックとSelectedStuffがすべて最後の項目になります。 – mattveiko

+0

その後、iをインクリメントしないでください。私のアップデートを見て、それが動作するかどうかを教えてください:) – CBreeze

関連する問題