Я работаю с datagrid инструментария wpf и располагаю колонку, заполненную переключающими кнопками. Используя стиль ниже, я меняю цвет фона, если выбрана кнопка переключения, а также при наведении мыши. К сожалению, если у меня есть возможность виртуализации, когда я делаю выбор кнопки переключения в ячейке и прокручиваю вниз в сетке, я найду другие ячейки, у которых также был изменен их фон. Я предполагаю, что это ошибка в том, как виртуализация повторно использует ячейки при прокрутке. Любое предложение обойти это и по-прежнему использовать виртуализацию?Ошибка виртуализации Wpf Datagrid при настройке цветов ячеек
<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>