1
私はwpfツールキットのデータグリッドを使用していて、トグルボタンが設定された列を持っています。以下のスタイルを使用して、トグルボタンが選択されている場合は背景色を変更し、マウスオーバーの場合は背景色を変更します。残念ながら、仮想化が有効になっている場合、セル内のトグルボタンを選択してグリッド内をスクロールすると、背景が変更された他のセルが見つかることになります。これは、仮想化がスクロールしながらどのようにセルを再利用しているかのバグだと思う。これを回避しても仮想化を使用するための提案はありますか?Wpf Datagrid Virtualizationセルの色を設定するときの問題
<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>