0

私はしばしば 20 ~ 30 の非常に複雑な UserControls を に挿入/削除しStackPanelます。すべての UserControls は既に作成され、再利用のためにキャッシュされています。コントロールを再利用する前に、古い親を消去してコントロールを記憶します。

のような操作はStackPanel.Children.RemoveStackPanel.Children.Add私のシナリオでは時間がかかります。

これらの操作を最適化するにはどうすればよいですか? たとえば、一度にすべてのコントロールを挿入するStackPanelか、コレクションの変更中に通知をフリーズしますか?

wpf 最適化 (MSDN を除く) を再評価する有用な記事を知っている人はいますか?

4

2 に答える 2

2

OnCollectionChanged()のイベント ハンドラーをオーバーライドして、イベント処理ObservableCollectionをすべて無効にするか、後で処理するためにイベントをキューに入れることができます。

ここの投稿を参照してください。答えが役立つ場合があります- https://stackoverflow.com/a/5491534/903056

于 2012-06-20T19:25:31.897 に答える
1

仮想化された UI またはデータの読み込み (もしあれば) 戦略を検討する必要があると思います。

この特定のケースでは、コントロールなどVirtualizingStackPanelを使用して、UI が描画するものを少なくします。このブログで詳細を確認できます。

于 2012-06-20T19:30:20.377 に答える