シナリオは次のとおりです。私は実際にリソースを処分するのは(非常に)初めてなので、私の例でうまくいくかどうかは完全にはわかりません。ここでは、デモンストレーションのために非常に単純化された基本的なシナリオを示します。
を含むユーザー コントロールMyUserControl
がありますscrollViewer
。また、 aと aMyClass
を含むクラスがあり、UI には a があり、ある時点で次のようにすべてが接続されます。grid
tabItem
tabControl
MainWindow
List<MyClass> list = new List<MyClass>();
private void SomeMethod(TabItem tabItem)
{
MyUserControl uc = new MyUserControl();
MyClass mc = new MyClass();
list.Add(mc);
mc.tabItem = tabItem;
tabItem.Content = uc;
uc.scrollViewer.Content = mc.grid;
tabControl.Items.Add(tabItem);
tabControl.SelectedItem = tabItem;
}
ある時点で、もう一度 tabItem を削除したいので、のリソースを解放したいのですが、uc
必ずしもmc
から削除するとは限りませんlist
。から削除tabItem
しtabControl
て設定するだけで十分mc.tabItem = null
ですか?