首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ItemContainerStyle阻止ItemContainerStyleSelector

ItemContainerStyle阻止ItemContainerStyleSelector
EN

Stack Overflow用户
提问于 2011-12-15 23:06:45
回答 1查看 4.6K关注 0票数 0

我有代码:

代码语言:javascript
复制
<ListBox Style="{StaticResource DeviceListBox}"
                 ItemsSource="{Binding MeterList, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
                 SelectedItem="{Binding CurrentMeter, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
                 ItemContainerStyleSelector="{StaticResource DeviceListItemStyleSelector}">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Style="{StaticResource DeviceListText}" Text="{Binding Name}" />
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>

我使用ItemContainerStyleSelector="{StaticResource DeviceListItemStyleSelector}"更改每个列表框项目中的背景色(例如,黑色或银色,请参见- http://msdn.microsoft.com/en-us/library/system.windows.controls.styleselector.aspx)。而且它是有效的。但是如果我在DeviceListItemStyle中添加ItemContainerStyle="{StaticResource DeviceListItemStyle}"来创建一些触发器等,那么DeviceListItemStyleSelector就不能工作。请帮帮我!)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-15 23:27:50

ItemContainerStyleSelector根据一些逻辑选择样式,所以很明显,手动设置样式将覆盖选择器应用的任何样式。

为什么你不在你的ItemContainerStyle中设置背景颜色

代码语言:javascript
复制
<Style x:Key="DeviceListItemStyle" TargetType="{x:Type ListBoxItem}">
    <Setter Property="Background" Value="Black" />
    <Style.Triggers>
        <DataTrigger Binding="{Binding IsSilver}" Value="True">
            <Setter Property="Background" Value="Silver" />
        </DataTrigger>
    </Style.Triggers>
</Style>
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8522156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档