silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了silverlight – 为什么WP8 LongListSelector错误地重用CheckBox的Checked状态?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_801_3@概述 我有一个带有以下模板的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状态?所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。