2

我在这里使用 ListBox 和 ListBox 样式:http: //viblend.com/products/net/wpf/controls/free-wpf-controls.aspx

看起来像这样:

    <ListBox x:Name="listBox" ItemsSource="{Binding}" Style="{StaticResource Office2010SilverListBoxStyle}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <ListBoxItem Style="{StaticResource Office2010SilverListBoxItemStyle}" Content="{Binding}"/>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

但是,如果我单击一个项目,它不会被标记为选定项目。如果我不使用数据模板,一切正常。那么有人知道为什么吗?这是工作示例:

<ListBox x:Name="listBox" Style="{StaticResource Office2010SilverListBoxStyle}">
    <ListBoxItem Style="{StaticResource Office2010SilverListBoxItemStyle}">1. Frame</ListBoxItem>
    <ListBoxItem Style="{StaticResource Office2010SilverListBoxItemStyle}">2. Frame</ListBoxItem>
    <ListBoxItem Style="{StaticResource Office2010SilverListBoxItemStyle}">3. Frame</ListBoxItem>
    <ListBoxItem Style="{StaticResource Office2010SilverListBoxItemStyle}">4. Frame</ListBoxItem>
    <ListBoxItem Style="{StaticResource Office2010SilverListBoxItemStyle}">5. Frame</ListBoxItem>
    <ListBoxItem Style="{StaticResource Office2010SilverListBoxItemStyle}">6. Frame</ListBoxItem>
</ListBox>-->
4

1 回答 1

1

DataTemplate应该包含将由控件创建的 a ,在您的示例中将有a ,混淆选择。ListBoxItemListBoxListBoxItemListBoxItem

此外,您应该通过 将样式应用于项目ItemContainerStyle。(据我所知,这仅适用于自动生成ListBoxItems的,如果您直接或通过添加数据ItemsSource,如果您ListBoxItems直接添加两者DataTemplateItemContainerStyle则会被忽略)

另请参阅:数据模板概述

于 2012-05-16T20:07:10.760 回答