私は WPF が初めてで、C++ のバックグラウンドを持っているので、ここでメモリ管理について心配しすぎているのかもしれません。
とにかく、2 列のグリッドを持つ UserControl (NewContact) を取得しました。上部の列には 3 つのラジオ ボタンが表示され、選択されているものに応じて、適切な UserControl がグリッドの下部セクションにロードされます。
private void newMilitaryContactRadioButton_Checked(object sender, RoutedEventArgs e)
{
UserControl NMC = new NewMilitaryContact();
NewContactWindowGridDisplay.Children.Insert(1, NMC);
}
private void newMilitaryContactRadioButton_Unchecked(object sender, RoutedEventArgs e)
{
NewContactWindowGridDisplay.Children.RemoveAt(1);
}
private void newLegalContactRadioButton_Checked(object sender, RoutedEventArgs e)
{
UserControl NLC = new NewLegalContact();
NewContactWindowGridDisplay.Children.Insert(1, NLC);
}
private void newLegalContactRadioButton_Unchecked(object sender, RoutedEventArgs e)
{
NewContactWindowGridDisplay.Children.RemoveAt(1);
}
private void newFirmContactRadioButton_Checked(object sender, RoutedEventArgs e)
{
UserControl NFC = new NewFirmContact();
NewContactWindowGridDisplay.Children.Insert(1, NFC);
}
private void newFirmContactRadioButton_Unchecked(object sender, RoutedEventArgs e)
{
NewContactWindowGridDisplay.Children.RemoveAt(1);
}
ここで私の質問は、ラジオ ボタンのチェックを外したときに、作成した UserControls をアンロードする必要があるかどうか、およびアンロードする方法です。MSDN ドキュメントを検索したところ、親オブジェクトから remove メソッドを使用するとユーザー コントロールがアンロードされることがわかりました。その場合、誰かが3つのラジオボタンを何度もクリックした場合にNFC / NLC / NMC UserControlオブジェクトを大量に積み上げないように、さまざまな「チェックされていない」メソッドで使用しているコードは正しいですそしてまた?
これを私に説明できる人に感謝します:)