2015-05-19 71 views
0

我有一個ItemsControl將ItemsSource屬性綁定到ViewModel。 DataTemplate渲染需要一些時間。我想在DataTemplate呈現時顯示「繁忙指示器」。如何顯示WPF ItemsControl的繁忙指標?

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

這可以用DataTriggers完成,還是可以通過使用ItemsControl的事件來完成?基本上,當綁定開始並且渲染完成時,我需要一個事件。

+1

也許使用* virtualized * ItemsControl將刪除對這種繁忙指標的需求。 – pindumb

回答

1

我將我希望在網格中擁有繁忙指標的項目包裝起來,並將指標添加爲水平和垂直居中的兄弟。這可以讓它們很好地重疊。然後,我將指標的可見性綁定到ViewModel上的IsBusy屬性,讓綁定處理所有事情。

+0

感謝您的快速響應。我的ViewModel中的數據將在綁定到ItemsControl之前加載。當我設置ItemsControl的ItemsSource的綁定時,XAML的渲染需要花費一些時間才能完成,而不是檢索數據的實際任務。我喜歡你對網格包裝的想法,如果我有一個事件來設置「IsBusy」,當綁定開始並且XAML已經完成渲染時,可以看到這將如何工作。 – LawMan

+0

您可能可以使用'CompositionTarget.Rendering'或'Control.OnApplyTemplate'事件來了解渲染何時開始,但不幸的是我沒有看到匹配事件完成。 https://msdn.microsoft.com/en-us/library/system.windows.media.compositiontarget.rendering(v=vs.110).aspx –