【问题标题】:How to show busy indicator for a WPF ItemsControl?如何显示 WPF ItemsControl 的繁忙指示器?
【发布时间】:2015-07-31 16:13:34
【问题描述】:

我有一个 ItemsControl,我将 ItemsSource 属性绑定到我的 ViewModel。渲染 DataTemplate 需要一些时间。我想在 DataTemplate 呈现时显示一个“忙碌指示器”。

<ItemsControl ItemsSource="{Binding Request.RequestDiscussions}">

这可以通过 DataTriggers 来完成,还是可以通过使用 ItemsControl 的事件来完成?基本上,当绑定开始和渲染完成时,我需要一个事件。

【问题讨论】:

  • 也许使用 virtualized ItemsControl 将不再需要这样一个繁忙的指示器。

标签: wpf model-binding itemscontrol busyindicator


【解决方案1】:

我将我想要有一个繁忙指示器的项目包装在一个网格中,并将指示器添加为水平和垂直居中的同级。这让它们很好地重叠。然后我将指标的可见性绑定到我的视图模型上的 IsBusy 属性,让绑定处理所有事情。

【讨论】:

  • 感谢您的快速回复。我的 ViewModel 中的数据将在绑定到 ItemsControl 之前加载。当我设置 ItemsControl 的 ItemsSource 的绑定时,XAML 的呈现需要一些时间才能完成,而不是检索数据的实际任务。我确实喜欢您对网格包装器的想法,如果我在绑定开始和 XAML 完成呈现时设置“IsBusy”事件,我可以看到它是如何工作的。
  • 您也许可以使用CompositionTarget.RenderingControl.OnApplyTemplate 事件来了解渲染何时开始,但不幸的是我没有看到匹配的完成事件。 msdn.microsoft.com/en-us/library/…
猜你喜欢
  • 2013-01-23
  • 2012-03-28
  • 1970-01-01
  • 1970-01-01
  • 2012-09-28
  • 2013-02-27
  • 2012-05-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多