如果WPF ListItem的内容包含_,则不能正确显示它

时间:2017-03-12 20:41:57

标签: c# wpf listbox

我有ListBox:

<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>

OddsList为ObservableCollection<CheckBoxListItem>

我使用不同的对象初始化此集合,其名称类似于&#34; TEST&#34;,&#34; TEST_1&#34;,&#34; TEST_2&#34;,&#34; OVERFLOW&#34;等(某些名称包含_符号)。

当我将此集合绑定到ItemsSource ListBox并启动应用时,我会看到ListItems名称中没有_。< / p>

为什么?

当我选择一些内容为空的项目时,它仍然是带有_符号的相同元素。

enter image description here

1 个答案:

答案 0 :(得分:3)

尝试将Content属性设置为TextBlock

<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/。但您可以将Content设置为TextBlock以解决此问题。