2017-12-28 13 views
1

でのSelectedItemを削除することはできません:は私が連絡先のリストをバインドデータグリッドをしたDataGridの

<DataGrid ItemsSource="{Binding Contacts" 
      SelectionMode="Single" 
      SelectionChanged="LoadContactInfo" 
      x:Name="ContactsGrid" 
      ... 

をユーザーが項目(連絡先)、および焼成ますLoadContactInfo方法を選択することができ、この方法は、以下の情報を読み込みますSelectedItem

各アイテムにはチェックボックスがあり、ユーザがそれを押すと、Contactsコレクションから連絡先が削除されます。すべて正常に機能していますが、問題があります。特に、DataGrid SelectedItemはコレクション内の次の連絡先に切り替わります。

私はLoadContactInfoイベントでSelectedItemを削除し、この状況を修正しようとした:

Contacts.SelectedItem = null; 

が、私も同じ問題ましたが、どのように私はこの問題を解決することができますか?ありがとう。

答えて

0

null値を割り当てるだけでDataGrid行を削除することはできません。

ただし、Rowsプロパティでこれを行い、Removeメソッドを呼び出すことができます。

var selectedItem = ContactsGrid.SelectedItem; 
ContactsGrid.Rows.Remove(selectedItem); 

選択されたアイテムが以前にヌルでないかどうかチェックしています。

+0

おかげで、私は '.Rows'性質を持っていない、なぜ? – MrFantastic

+0

@MrFantastic申し訳ありませんが、私は混乱しています。 'Items'プロパティを試してください – PedroJ

+0

既にItemSourceから連絡先を削除しましたが、DataGridはselectedItemを次のアイテムに切り替えます。 – MrFantastic

0

ItemsSourceプロパティを使用する場合は、データから項目を削除する方がよいでしょう。 連絡先はINotifyCollectionChangedを実装するか、ObservableCollectionにする必要があります。 SelectedIndexを-1に設定してみてください。

+0

更新された回答を確認する –

0

シンプルなソリューション:答えを

ContactsGrid.UnselectAll(); 
関連する問題