可能重复:
WPF: How can I avoid the flickering of the checked checkboxes in a ListBox or a ListView ?
有没有人能够解决这个问题呢?
WPF: How can I avoid the flickering of the checked checkboxes in a ListBox or a ListView?
我一直在寻找这个超过一个星期的时间&仍然没有解决方案。
在添加甚至刷新项目时它会闪烁,这非常令人讨厌。
.Net 4.0版。
答案 0 :(得分:0)
抱歉,我不太了解XAML,但你能尝试这样的事吗?
注意:我认为你不能在XAML中使用BackgroundWorker对象,但是你可以在另一个类中使用它并找到一种方法将数据传递给它。
这里的主要想法是将你的工作转移到另一个线程,并在那里填充。
...虽然,我必须说:如果你真的在一行中添加你的所有项目(如下面的修改示例所示),我怀疑是否会有任何由此引起的闪烁。你的闪烁可能来自其他地方。是否有任何在数据源发生变化时触发的事件处理程序?
void Button_Click(object sender, RoutedEventArgs e) {
using (BackgroundWorker worker = new BackgroundWorker()) {
var items = new int[10000];
worker.DoWork += delegate {
for (int i = 0; i < items.Length; i++)
items[i] = i + 1;
};
worker.RunWorkerCompleted += delegate {
listBox.ItemsSource = items;
};
worker.RunWorkerAsync();
}
}
答案 1 :(得分:-1)
您是否尝试过double buffering。