Я нашел изящное решение, и я только что нашел время, чтобы писать сообщение в блоге об этом .
то, Что я сделал, должно было создать приложенное свойство, SynchronizedSelectedItems, который можно установить на ListBox (или DataGrid на самом деле). Вы связываете с данными это к набору, и затем, с небольшим количеством волшебства, свойство SelectedItems на ListBox и Вашем наборе сохранено в синхронизации. Можно загрузить весь код с моего сообщения в блоге.
"волшебство" является классом, который прекращает слушать для событий CollectionChanged в любом наборе и распространяет изменения в другом.