我正在尝试在窗口电话 7 的列表框中提供备用行样式。
我使用了以下内容:如果我的行数很少,它会起作用。
<ListBox x:Name="ListBox1" Width="500" Height="300">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Width="500" Background="{Binding age,Converter={StaticResource myconverter}}">
<TextBlock Text="Some text"></TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
这是我的转换器,它改变了背景颜色:
public class MyConverter : IValueConverter
{
bool flag = false;
SolidColorBrush brush1 = new SolidColorBrush(Color.FromArgb(255, 100, 200, 255));
SolidColorBrush brush2 = new SolidColorBrush(Color.FromArgb(255, 200, 100, 155));
public object Convert(object value,
Type targetType,
object parameter,
System.Globalization.CultureInfo culture)
{
flag = !flag;
return flag ? brush1 : brush2;
}
public object ConvertBack(object value,
Type targetType,
object parameter,
System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
绑定后,它为我的 listbox 提供了备用行背景颜色。但是,如果列表框在我快速向上和向下滚动时有太多行,那么行颜色会改变,因为它在滚动列表框时再次调用转换器。
我该如何解决这个问题,请帮助我?