Windows Phone 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();
}
}
バインド後、リストボックスに別の行の背景色が与えられました。しかし、リストボックスを上下に非常に速くスクロールすると、リストボックスの行が多すぎると、リストボックスのスクロール中にコンバーターが再度呼び出されるため、行の色が変わります。
どうすればこれを修正できますか、助けてください。