What you can do to get around this:
Create an IsSelected property on the items you are displaying in the list. Im assuming these are represented by a view model as well. So it shouldn't be a drama to add an extra property. If they are just business objects consider using a wrapper class to painlessly wrap them in view model items (shameless plug - here is one such system. I use it daily to wrap my business objects)
Use an items container style to bind the IsSelected property of the list box item to the IsSelected property of the items you are displaying, like so
<ListBox.ItemContainerStyle>
<!-- This Style binds a ListBoxItem to a the ViewModelItem. -->
<Style
TargetType="{x:Type ListBoxItem}">
<Setter
Property="IsSelected"
Value="{Binding IsSelected, Mode=TwoWay}" />
</Style>
</ListBox.ItemContainerStyle>
(might need a based on attribute on the style, not sure)
Now whenever a list box item gets selected your view model will know about it and can update its internal collection as required.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…