【发布时间】:2018-05-02 10:49:12
【问题描述】:
下面的问题让我忙了很长时间,它似乎很基础,但它不起作用。归结为:
- 在代码后面(ObservableCollection、ReactiveList 等)中有一个绑定到某个合适集合的 ListView
- 我每 x 秒一次移动一个项目
- 每次移动,所有项目都会刷新(至少看起来是这样的。在几秒钟内所有项目都会消失,然后以新的顺序重新出现)
必须有一种方法可以保留其他元素并“移动”被移动的项目。我什至不关心移动项目的精美翻译动画,我只想让其他元素留在屏幕上。 当然,我真正的用例不是随机移动项目,而是在后面的代码中对列表进行排序。但我将问题追溯到这个简单的案例。
拥有一个简单的 ListView 并绑定它,例如到 CodeBehind 中的 ObservableCollection,以下是我在项目周围移动的虚拟代码:
_timer = new Timer(async _ =>
{
Random r = new Random();
var randomIndex = r.Next(0, contactsCvsSource.Count - 1);
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { contactsCvsSource.Move(randomIndex, 5); });
}
, null, 0, 1000);
【问题讨论】:
标签: uwp