ListView 中绑定属性和直接可见性变化的奇怪行为
Posted
技术标签:
【中文标题】ListView 中绑定属性和直接可见性变化的奇怪行为【英文标题】:Weird behavior with bound properies and direct visibility change in ListView 【发布时间】:2016-10-05 03:59:55 【问题描述】:我有一个 cmets 列表(带有数据模板)。每个评论的某些部分被隐藏(回复评论框)。我做了一个回复功能,显示隐藏的回复部分,用户写一些消息(在文本框中)然后点击一个发送按钮,一个应用程序应该在发送后隐藏这个块。当我做到这一点时,我陷入了一种奇怪的行为。当我通过可视化树管理评论的隐藏部分的可见性时,即直接在代码隐藏中更改它(在发送消息并将其添加到 Observablecollection 之后):
hiddenPart.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
它可以正常工作(消息被添加到列表中并且我看到了),但是如果我将隐藏部分的可见性绑定到 VeiwModel 中的属性并通过属性更改它,ListView(使用这些 cmets)滚动到一些向上偏移(隐藏回复部分后)。有时甚至达到顶峰。 附言。 ListView 的这个选项无效:
<ItemsStackPanel ItemsUpdatingScrollMode="KeepItemsInView"/>
我不知道为什么会这样。
【问题讨论】:
看来问题与焦点变化有关。 【参考方案1】:这个奇怪的问题(99%)与 Windows Phone 8.1 Update 1 中的导航错误有关(当您应该通过 Dispatcher
在页面之间导航以避免崩溃时)。
【讨论】:
以上是关于ListView 中绑定属性和直接可见性变化的奇怪行为的主要内容,如果未能解决你的问题,请参考以下文章
将 ContextMenu 的 MenuItem 可见性绑定到 ListView 选择
如何为 ListView 的 ContextActions 的 MenuItem 添加可见性绑定