Changing selected state of items in bound listbox
===

I'm trying to change the selected state of items in a bound listbox based on if an object is used in the class that the item is bound to, I just can't seem to find a way of doing it and it has to remain dynamic because the object may change and thus used in different instances of the class: 

      <Popup x:Name="ContextMenuPopup" Height="250" Width="300" Margin="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
                <Canvas Name="popupholder" Background="DarkSeaGreen" Height="250" Width="300" HorizontalAlignment="Center">
                    <StackPanel Orientation="Vertical">
                    <TextBlock Name="popupTitle" Text="Select Investments" Margin="20,0,0,0" FontFamily="Courier New" FontSize="22" HorizontalAlignment="Center" Foreground="Black" />
                    <ListBox x:Name="investPicker" SelectionChanged="ListBox_SelectionChanged" LayoutUpdated="investPicker_LayoutUpdated" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="10,20,0,0" SelectionMode="Multiple">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="{Binding Name}" Width="100"/>
                                </StackPanel>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox> 
                        <Button Name="executeSelection" Content="Ok" Click="executeSelection_Click" Margin="40,5,0,0" VerticalAlignment="Bottom"/>
                    </StackPanel>           
                </Canvas>
            </Popup>

Thwe code behind is: 

            private void ApplicationBarIconButton_Click_1(object sender, EventArgs e)
        {
            this.investPicker.ItemsSource = storedInvestments;
            
            foreach (Investment investment in investPicker.Items)
            {
                foreach (CardDataSet card in investment.attachedCards)
                    if (card.ID == activeCard.ID)
                        VisualStateManager.GoToState((ListBoxItem) investPicker.Items[investment.ID -1], "Selected", true);
            }
   
            ContextMenuPopup.IsOpen = true;
            
        }

Now obviously the code doesn't work as its an invalid cast from my class to a ListBoxItem, anyone know how I could do this?