为什么 WP8 LongListSelector 错误地重用了 CheckBox 的选中状态?

2024-05-21

我有一个带有以下模板的 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 似乎正在缓存我的复选框的选中状态。如果我检查第一个项目,然后向下滚动到一半,在大约 30 个项目之后,我会看到另一个项目被选中,但我没有选择。其余的绑定工作。这就好像它忽略了模板中的“IsChecked”属性。我尝试将 IsChecked 属性绑定到属性,但没有成功。

有谁知道这是否是一个错误,如果不是,我该如何纠正这种行为?

Thanks!


不是一个错误,尽管一开始它可能看起来像一个错误。你看到的是ui虚拟化的效果,基本上LongListSelector回收了数据模板而不是创建新的来提高性能。回收的一个已知副作用是,如果您的数据模板包含维护其自身状态的控件(例如 CheckBox),则该状态将延续到新项目。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 WP8 LongListSelector 错误地重用了 CheckBox 的选中状态? 的相关文章

  • 如何将过滤器应用于 PagedCollectionView 但防止 CollectionChanged 事件在编辑时触发?

    我有一个 Silverlight 应用程序 其中DataForm绑定在一个PagedCollectionView包含实现的对象IEditableObject 每当用户使用 DataForm 编辑对象时 CollectionChanged集合
  • 隐藏继承的成员

    我正在寻找某种方法来有效隐藏继承的成员 我有一个继承自公共基类的类库 一些较新的后代类继承了依赖属性 这些属性已变得残存 并且在使用时可能会有点混乱智能感知或使用视觉设计器中的类 这些类都是为 WPF 或 Silverlight 2 0 编
  • 如何在 Windows Phone 8 中使用 ProgressRing

    在参考中http briandunnington github io progressring wp8 html http briandunnington github io progressring wp8 html为了实现一个有趣的进度
  • Silverlight 和绑定到匿名类型

    ScottGu 在一份承认的声明中指出old post http weblogs asp net scottgu archive 2007 05 15 new orcas language feature anonymous types a
  • Python:导航到便携式设备目录 (Windows 7)

    我正在尝试解决我创建的一个问题 https stackoverflow com questions 21381652 python find record time of mp4 movie noredirect 1 comment3234
  • 如何从 SQLite 的异步 PCL 版本使用 SQLiteAsyncConnection?

    我使用的是 Sqlite net 的 PCL 版本https github com oysteinkrog SQLite Net PCL https github com oysteinkrog SQLite Net PCL 但是 我无法获
  • 如何让我的 Windows Phone 7 应用程序出现在 Windows Phone 8 市场中?

    当我进行构建时 我一定做错了什么 我希望当前的更新适用于 Windows Phone 7 和 Windows Phone 8 我正在使用 WP8 SDK 并面向 OS 8 当我上传 XAP 时 我得到了 AnyCPU xap 现在我的应用程
  • Zend 框架复选框装饰器

    我想要完成的是让复选框标签显示在复选框输入字段之后 在它们的右侧 我现在正在使用这些装饰器 private checkboxDecorators array Label array array data gt HtmlTag array t
  • 如何在Silverlight中创建拉伸剪切矩形

    由于 Silverlight 控件上没有 ClipToBounds 属性这一舒适功能 因此我必须自己定义剪切形状 我想知道是否可以创建一个符合控件大小的剪切矩形 有什么建议么 如果布局中存在要动态剪辑的现有控件 则使用其SizeChange
  • 改变 Silverlight 应用程序的文化

    我目前正在开发 Silverlight 应用程序 我有一些数据网格 文本块 我使用标准绑定来显示值 其中一些是日期 例如
  • 如何在 Android 中将 CheckBox 与其描述顶部对齐

    我想对齐CheckBox 符号 位于其描述的顶部 What I have now What I want to have 当前的 XML
  • 如何像在iOS中一样在WP8中使用Prefix.pch?

    在 iOS 中 我有 5 个使用相同代码的应用程序 我能够引用公共类并使用 Prefix pch 文件中的值来分隔应用程序名称 主题和颜色 我的前缀文件有这些 define APPLICATION NAME Application01 de
  • 在非 UI 线程上运行 RIA 服务

    我正在尝试从非 UI 线程进行 RIA 服务调用 我通过打开新线程和后台工作人员进行了调用 但对于这两种情况 回调都在 UI 线程上运行 是否可以在调用者线程而不是 UI 上执行回调 Thanks tl dr Use WCF 自行将结果编组
  • Windows Phone 8 性能进度条

    我是否需要在 Windows Phone 8 中使用性能进度条 在我的 Windows Phone 7 7 5 应用程序中 我使用了工具包附带的进度条 性能进度条 是否有必要在Windows Phone 8中使用相同的或者简单的进度条就足够
  • Windows Phone 8 Facebook 登录 应用程序不允许给定 URL

    我正在尝试按照以下教程将 Facebook 登录集成到我的应用程序中facebooksdk net http facebooksdk net 我正在尝试使用Facebook 按钮控制 http facebooksdk net docs ph
  • wp7 芒果中的 DataTemplateSelector

    我的应用程序中需要一个数据模板选择器 我发现这个博客 http www windowsphonegeek com articles Implementing Windows Phone 7 DataTemplateSelector and
  • 复选框上的数据绑定

    我目前正在将数据从 SQL 数据库之一提取到我的应用程序中 我可以让它适用于我的文本框和其他项目 但是 我似乎无法让它适用于复选框 这是我正在使用的代码 DataTable dt new DataTable dt using SqlConn
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 依赖属性更改回调 - 多次触发

    我想听一下 DependencyProperty 的变化 此代码有效 但每次使用 CustomControl 重新加载页面后都会多次调用回调方法 public partial class CustomControl UserControl
  • 如何在 Xaml 文本中添加电子邮件链接?

    我在 Windows Phone 8 应用程序中有一些大文本 我希望其中有电子邮件链接 例如 mailto 功能 这是代码的一部分

随机推荐