Это работает для меня.
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<ListBox x:Name="lbCheque" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,191,0,0"
Width="200" Height="210" >
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True" >
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="Foreground" Value="Black" />
</Trigger>
</Style.Triggers>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
<Button
Grid.Column="1"
Content="Select"
Click="Button_Click"/>
</Grid>
</Window>
И
public MainWindow()
{
InitializeComponent();
lbCheque.ItemsSource = new List<string> {"aa","bb","cc" };
}
private void Button_Click(object sender, RoutedEventArgs e)
{
lbCheque.SelectedItem = "bb";
}
Это зависит от того факта, что строки немного странные, и все строки "bb" являются одним и тем же объектом. С более сложным объектом мне нужно получить ссылку на конкретный экземпляр или переопределить равные в классе.