次のテンプレートを使用したWP8LongListSelectorがあります。
<DataTemplate x:Key="ItemTemplate">
<Grid Margin="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="110"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<controls:BlockImageControl
Grid.Column="0"
Width="110"
Height="110"
Background="Transparent" />
<TextBlock x:Name="Name"
Grid.Column="1"
Text="{Binding ScreenName}"
FontSize="{StaticResource PhoneFontSizeLarge}"
FontWeight="Bold"
VerticalAlignment="Center"/>
<CheckBox x:Name="Unblock" Grid.Column="2" VerticalAlignment="Center"
Tap="BlocksList_Tap"
IsChecked="false"
/>
</Grid>
</DataTemplate>
ご覧のとおり、各セルアイテムの最後にチェックボックスがあり、ユーザーは複数のアイテムを選択できます。IsCheckedはデフォルトでfalseです。
問題は、LongListSelectorがチェックボックスのチェック済み状態をキャッシュしているように見えることです。最初の項目をチェックしてから途中までスクロールすると、約30項目後に、選択しなかった別の項目がチェックされているのがわかります。残りのバインディングは機能します。これは、テンプレートの「IsChecked」プロパティを無視しているようです。IsChecked属性をプロパティにバインドしようとしましたが、うまくいきませんでした。
これがバグであるかどうかを誰かが知っていますか?そうでない場合は、どうすればこの動作を修正できますか?
ありがとう!