-1

私の ItemControl は、ItemsSource を介して ObservableCollection<...> にバインドされています。コレクションを埋めるとき、プログラムは適切な ItemTemplate オブジェクトを作成し、それらを ItemsControl にレンダリングするために、ある程度の (少しですが、まだある程度の) 時間を必要とします。私のItemsControlがItemsSourceを介してバインドされたコレクションの作成(レンダリング、表示)を終了した場合、知る方法はありますか? 助けてください。私は本当にこの答えが必要です。ObservableCollection を埋めた直後に、このコレクションのオブジェクトに取り組みたいと思います。残念ながら、一部の情報が失われています。ItemsControl はまだアイテム (ItemTemplates) を作成しているためです。

* EDIT 理解を深めるために: ObservableCollection<...> MyCollection は MyItemsControl の ItemsSource にバインドされます。

私はコードを実行します:

for(int i = 0; i < ...; i++)
{
    MyCollection.Add(MyItem);
}

// await Task.Delay(100) // If this line is not commented, everything works fine...
// ..but I don't think it's a good idea to solve that problem in this way.

foreach(Object o in MyCollection)
{
    // The line under, is faster that the ItemsControl rendering...
    // ...so the Work is not displayed.
    o.DoSomeWorkThatShouldBeDisplayedInItemTemplateOfMyItemsControl
}

*編集 2 解決済み: LayoutUpdated イベント

4

2 に答える 2

0

わかった。LayoutUpdated イベントが必要です。別のフォーラムで見つかりましたが、将来的には sb を支援したいと考えています。

于 2012-11-19T13:08:03.383 に答える
-1

試すSystem.Windows.Forms.Application.DoEvents();

于 2012-11-19T01:13:09.940 に答える