Добавьте свойство IsSelected
к вашему ребенку ViewModel (OrderViewModel
в вашем случае):
public bool IsSelected { get; set; }
Привязать выбранное свойство контейнера к этому (для ListBox в данном случае):
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="IsSelected" Value="{Binding Mode=TwoWay, Path=IsSelected}"/>
</Style>
</ListBox.ItemContainerStyle>
IsSelected
обновляется в соответствии с соответствующим полем на контейнере.
Вы можете получить выбранных дочерних элементов в модели представления, выполнив следующие действия:
public IEnumerable<OrderViewModel> SelectedOrders
{
get { return Orders.Where(o => o.IsSelected); }
}