Шаблон по умолчанию для CheckBox содержит ContentPresenter, для которого RecognizesAccessKey имеет значение true. Если содержимое является строкой (что в вашем случае), то ContentPresenter создает элемент AccessText для отображения текста. Этот элемент скрывает подчеркивание до тех пор, пока не будет нажата клавиша Alt, поскольку он будет обрабатывать его как мнемонику. Вы можете либо повторить шаблон CheckBox, чтобы RecognizesAccessKey его ContentPresenter был ложным или, что еще лучше, но просто предоставить DataTemplate в качестве ContentTemplate, который содержит TextBlock. Если вы не уверены, будет ли содержимое строкой, вы можете установить ContentTemplateSelector и в коде предоставить DataTemplate, который содержит TextBlock, только если элемент является строкой. например,
<ListBox xmlns:sys="clr-namespace:System;assembly=mscorlib">
<ListBox.Resources>
<DataTemplate DataType="sys:String" x:Key="stringTemplate">
<TextBlock Text="{Binding}" />
</DataTemplate>
<Style TargetType="CheckBox">
<Setter Property="ContentTemplate" Value="{StaticResource stringTemplate}" />
</Style>
</ListBox.Resources>
<ListBoxItem>
<CheckBox Content="A_B" ContentTemplate="{StaticResource stringTemplate}"/>
<!-- Or use the implicit style to set the ContentTemplate -->
<CheckBox Content="A_B" />
</ListBoxItem>
</ListBox>