【问题标题】:Wpf Datagrid Virtualization Issue when setting cell colors设置单元格颜色时出现 Wpf Datagrid 虚拟化问题
【发布时间】: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


    【解决方案1】:

    通过绑定样式所针对的切换按钮的 IsChecked 属性,我已经能够解决这个问题。这使我可以打开虚拟化并保持每个单元格中模板切换按钮的背景颜色与其应有的颜色正确同步。

                        <ToggleButton Tag="button" IsChecked="{Binding Path=Selected,Mode=TwoWay}" FocusVisualStyle="{x:Null}" Content="{Binding Path=MarkerName,Mode=OneWay}">
                    </ToggleButton>
    

    【讨论】:

      猜你喜欢
      • 2023-01-13
      • 1970-01-01
      • 2018-07-24
      • 2013-03-04
      • 2011-08-17
      • 2011-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多