【问题标题】:WP 8.1 ListView item, ist's events and size manipulation in 'real-time'WP 8.1 ListView 项目、ist 的事件和“实时”的大小操作
【发布时间】:2015-06-03 08:58:56
【问题描述】:

我的目标是制作一个包含项目的列表,其中每个项目都具有一点交互性。所以每一项:

  • 点击时通过动画更改高度
  • 点击心形图标时触发事件

这没什么难确定的吧?不,不是,因为当我触发 Animation.Begin() 开始动画项目高度时,动画工作正常,但是当我向下滚动列表时,有些项目没有被点击但被动画“放大”。看起来回收视图对“新加载”项目做了一些奇怪的事情,或者事件在 ListView 的不同元素之间以某种方式共享。我不知道如何解决它,我已经搜索了很多,但是没有结果,你们中的任何人都找到了解决方案吗?

编辑:

cmets 中第一个答案的解决方案。

【问题讨论】:

    标签: listview windows-phone windows-phone-8.1


    【解决方案1】:

    尝试在 listview 上设置 VirtualizingStackPanel.VirtualizationMode 附加属性。详情见here

     <ListView VirtualizingStackPanel.VirtualizationMode="Standard"></ListView>
    

    【讨论】:

    • 它没有帮助,默认情况下 VirtualizationMode in ListViewStandard 所以明确地传递它不会改变任何东西(我无论如何都试过了)。我尝试的第二件事是给 DataContext 一个名为 IsExpanded 的附加属性,并在每次在 UI 中加载项目时检查它,结果与以前一样。
    • 我可能解决了这个问题,ListViewVirtualizingStackPanel.VirtualizationMode="Standard" 应该在每次从屏幕上消失并返回时创建新的项目实例,但不幸的是情况有点不同,类似于Recycle模式。项目容器始终相同,但 DataContext 正在发生变化,所以我在 UserControl 内监听事件 DataContextChanged 并在后面的控制代码中设置项目的有效状态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 2018-04-24
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多