silverlight – 为什么WP8 LongListSelector错误地重用CheckBox的Checked状态?

silverlight – 为什么WP8 LongListSelector错误地重用CheckBox的Checked状态?,第1张

概述我有一个带有以下模板的WP8 LongListSelector: <DataTemplate x:Key="ItemTemplate"> <Grid Margin="0"> <Grid.ColumnDefinitions> <ColumnDefinition Width="110"/> <Col 我有一个带有以下模板的WP8 LongListSelector:

<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似乎正在缓存我的复选框的Checked状态.如果我检查第一个项目,然后向下滚动,在大约30个左右的项目后,我看到另一个项目已选中,我没有选择.其余的绑定工作.就好像它忽略了模板中的“IsChecked”属性.我尝试将IsChecked属性绑定到属性,没有运气.

有谁知道这是一个错误,如果没有,我怎么能纠正这种行为?

谢谢!

解决方法 不是一个BUG,虽然它起初可能看起来像一个BUG.你看到的是ui虚拟化的影响,基本上LongListSelector回收数据模板而不是创建新的数据模板来提高性能.回收的一个已知副作用是,如果您的数据模板包含维护其自身状态的控件,例如CheckBox,该状态将转移到新项目.

要解决此问题,您需要在外部管理控制状态,即在视图模型中.在您的特定情况下,CheckBox的IsChecked属性必须绑定到视图模型的属性.并确保使用双向绑定.

总结

以上是内存溢出为你收集整理的silverlight – 为什么WP8 LongListSelector错误地重用CheckBox的Checked状态?全部内容,希望文章能够帮你解决silverlight – 为什么WP8 LongListSelector错误地重用CheckBox的Checked状态?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1005970.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存