【发布时间】:2009-04-03 13:31:20
【问题描述】:
我正在使用 wpf 工具包数据网格并有一个填充了切换按钮的列。如果选择了切换按钮并且鼠标悬停,则使用以下样式更改背景颜色。不幸的是,如果我启用了虚拟化,当我在一个单元格中选择一个切换按钮并在网格中向下滚动时,我会发现其他单元格的背景也发生了变化。我认为这是我滚动时虚拟化如何重用单元的错误。有什么建议可以解决这个问题并仍然使用虚拟化?
<Style TargetType="{x:Type ToggleButton}">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<TextBlock x:Name="Tb" Tag="{TemplateBinding Property=Tag}" Padding="{TemplateBinding Property=Padding}" Text="{TemplateBinding Property=Content}" >
</TextBlock>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Tb" Property="Background" Value="{StaticResource HoverRed}" />
</Trigger>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="Tb" Property="Background" Value="{StaticResource SelectYellow}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
【问题讨论】:
标签: wpf datagrid virtualization toolkit