Why is WP8 LongListSelector incorrectly reusing CheckBox checked state?

I have a WP8 LongListSelector with the following pattern:

    <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>

As you can see, at the end of each element of the cell there is a checkbox that allows the user to select several elements. By default, IsChecked is false.

The problem is that LongListSelector seems to cache the Checked state of my checkbox. If I check the very first element, then scroll down, after about 30 or so, I see another element that I did not select. The remaining bindings work. It is as if he was ignoring the IsChecked property in the template. I tried to bind the IsChecked attribute to a property, no luck.

Does anyone know if this is a mistake, and if not, how can I fix this behavior?

Thank!

enter image description here

+5
1

, . , , ui, LongListSelector . , , , CheckBox, .

, , . IsChecked CheckBox . .

+7

All Articles