エンティティオブジェクトのコレクションビューにバインドされたリストビューがあります(メッセージと呼ばれます)
更新をバインドするリストビューアイテムは、メッセージオブジェクトコレクションが変更されたときにトリガーされます(dispatchertimer)。
これが発生すると、リストビューで現在選択されているアイテムの選択が解除されます。
リストビューアイテムコレクションでLINQ検索を実行して、特定のIDのメッセージオブジェクトを見つけて再選択するにはどうすればよいですか?
int id = ((Message)lvMessages.SelectedItem).Id;
lvMessages.DataContext = service.Messages;
ICollectionView view = CollectionViewSource.GetDefaultView(lvMessages.ItemsSource);
view.Filter = new Predicate<object>(FilterMessageItem);
//var li = lvMessages.Items.Cast<Message>().Where(m => m.Id == id).SingleOrDefault();
lvMessages.SelectedItem = li;
コメント行でこのエラーが発生するため、Linqクエリを設定する方法がよくわかりません...
タイプSystem.Collections.Generic.IEnumerable'を'BusinessObjects.Message'に暗黙的に変換することはできません。明示的な変換が存在します(キャストがありませんか?)
たぶん、コレクション内の変更されたアイテムをリストビューに入力するためのより良い方法がありますか?わからない。