2

私のアプリケーションでは、私が持っているいくつかのデータに基づいて部屋を描いています。その「部屋」には棚があります (これはレイアウト グリッドにすぎません)。ユーザーは、棚のセクションを表すグリッド内のセルに対していくつかのアクションを実行できます。(棚スペースを製品専用にするようなものです)。部屋に対するアクションが完了したら、ページが初めて読み込まれたかのように部屋を再描画したいと思います。私はそれを機能させることができないようです。

キャンバスの子をクリアして部屋に戻ろうとしましたが、空白のページしか表示されません。コードは非常に単純です。

LayoutRoot.Children.Clear();
NavigationService.Navigate(new Uri("/TheRoom", UriKind.Relative));

私は他の多くの方法を試しましたが、どれもうまくいきませんでした。ここで正しいアプローチを使用しているかどうか、または見落としているものがあるかどうか教えてください。

4

1 に答える 1

0

InvalidateArrange(); の呼び出しについてはどうでしょうか。または InvalidateVisual(); Canvas と Panel、Silverlight と WPF でこれらの機能のどれを利用できるかは思い出せませんが、いくつかは利用できることは知っています。

Canvas が適切な無効化方法を提供しない場合は、いつでもパネルを継承して独自の「Canvas」を作成し、InvalidateArrange() をオーバーライドして必要なことを行うことができます。

于 2011-09-01T04:44:43.843 に答える