Ho un LongListSelector WP8 con la seguente configurazione:Perché WP8 LongListSelector riutilizza in modo errato lo stato controllato di CheckBox?
<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>
Come potete vedere c'è una casella di controllo al termine di ogni elemento delle cellule, che permette all'utente di selezionare più elementi. IsChecked è falso per impostazione predefinita.
Il problema è che LongListSelector sembra memorizzare nella cache la casella di controllo dello stato selezionato. Se controllo il primissimo articolo, poi scorro verso il basso, dopo circa 30 elementi, vedo un altro oggetto controllato che non ho selezionato. Il resto degli attacchi funziona. È come se ignorasse la proprietà "IsChecked" nel modello. Ho provato a legare l'attributo IsChecked a una proprietà, senza fortuna.
Qualcuno sa se questo è un bug, e se no, come posso correggere questo comportamento?
Grazie!
Grazie mille. Avevo provato prima ma il TwoWay era il segreto! – esilver
In che modo 'TwoWay' influisce su questo problema? – Ku6opr