2017-03-12 50 views
0

私は、リストボックスがあります。OddsListはObservableCollection<CheckBoxListItem>WPFのListItemが正しく表示されません_

ある

<ListBox HorizontalAlignment="Left" Name="betOdds" VerticalAlignment="Top"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel> 
       <CheckBox Content="{Binding Name}" IsChecked="{Binding IsChecked}" HorizontalAlignment="Stretch"/> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

を私は「TEST」のような名前を持っているさまざまなオブジェクトとこのコレクションを初期化、 "TEST_1"、 "TEST_2"、 "OVERFLOW"など(一部の名前には_シンボルが含まれています)。

このコレクションをItemsSourceListBoxにバインドしてアプリを起動すると、_という名前のないListItemsが表示されます。

なぜですか?

空のコンテンツが含まれているアイテムを選択すると、同じ要素には_というシンボルが付いています。

enter image description here

+0

回避策は、単一のアンダースコアを2つのアンダースコアに置き換えることで、コンテンツ内で単一のアンダースコアとして扱われます。 –

答えて

3

TextBlockContentプロパティを設定してください:

<ListBox HorizontalAlignment="Left" Name="betOdds" VerticalAlignment="Top"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel> 
       <CheckBox IsChecked="{Binding IsChecked}" HorizontalAlignment="Stretch"> 
        <CheckBox.Content> 
         <TextBlock Text="{Binding Name}" /> 
        </CheckBox.Content> 
       </CheckBox> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

アンダースコアが前の文字がアクセスキーに変換することができる:http://www.c-sharpcorner.com/UploadFile/mahesh/wpf-accesstext/。しかし、これを回避するにはTextBlockContentを設定することができます。

+0

ええ、これは助けます!ありがとう。しかし、なぜデフォルトで '_'が表示されないのか知っていますか? – demo

+1

私の編集した答えを見てください。 – mm8

関連する問題