C# WPF绑定用户娱乐

C# WPF绑定用户娱乐,c#,.net,wpf,xaml,binding,C#,.net,Wpf,Xaml,Binding,我遇到过这样一种情况,我有一个ItemsControl从数据收集中生成一个非常复杂的可视化树,非常简单: <ItemsControl ItemsSource="{Binding Items}"/> 我遇到的一个小问题是,当初始绑定构造发生时,它在构建自身时可能需要一段“明显”的时间(根据树的复杂性,从1/2秒到2秒不等)。在此期间,UI线程完全没有响应(动画挂起、单击被取消注册等) 虚拟化已经启用并正在运行,因此我所需要的基本上是在ItemContainerGenerator执

我遇到过这样一种情况,我有一个ItemsControl从数据收集中生成一个非常复杂的可视化树,非常简单:

<ItemsControl ItemsSource="{Binding Items}"/>

我遇到的一个小问题是,当初始绑定构造发生时,它在构建自身时可能需要一段“明显”的时间(根据树的复杂性,从1/2秒到2秒不等)。在此期间,UI线程完全没有响应(动画挂起、单击被取消注册等)


虚拟化已经启用并正在运行,因此我所需要的基本上是在ItemContainerGenerator执行其任务时播放动画的能力。

要使UI在此期间不冻结,可以将项数据的加载放到BackgroundWorker中


然后在BackgroundWorker方法的末尾,通知Items属性已更改。

尝试将大多数绑定设置为:



您是否尝试过将大多数绑定设置为
IsAsync=True
?@HighCore没有,但我肯定现在也会尝试。我猜您有大量的项目,不是吗?@HighCore IsAsync工作得很好,非常感谢,将其作为答案发布,我会标记它。数据已经加载,可以继续了,挂起是由绑定引擎本身创建可视对象造成的。对不起,我当时误解了。但无论如何,我认为UI不会冻结,只有当繁重的处理部分放在另一个线程上时,我建议尽可能尝试使用线程的解决方案。
<SomeControl SomeProperty="{Binding SomeData, IsAsync=True}"/>