我是 WPF 的新手,并且来自 C++ 背景,所以我可能在这里担心内存管理太多。
无论如何,我有一个 UserControl (NewContact),它有一个 2 列的网格,上列显示 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);
}
现在我的问题是,当未选中单选按钮时,我是否应该以及如何卸载我创建的 UserControl。我在 MSDN 文档中进行了一些搜索,发现使用父对象中的 remove 方法会卸载用户控件。如果是这种情况,我在各种“未经检查”的方法中使用的代码是正确的,以免在有人一遍又一遍地点击三个单选按钮时堆积大量 NFC/NLC/NMC UserControl 对象一遍又一遍?
非常感谢任何可以向我解释这一点的人:)