У меня есть набор UserControl, которые совместно используют один и тот же бизнес-объект (ViewModel), но по-разному отображают данные из него.
Я выбираю активный UserControl через выпадающий список.Старый UserControl Я удаляю из StackPanel и добавляю новый UserControl.
var uiElement = thisObject.EditorsContainer.Children.FirstOrDefault();
if (uiElement != null)
{
thisObject.EditorsContainer.Children.Remove(uiElement);
uiElement.Cast<UserControl>().ClearValue(DataContextProperty);
}
EditorsContainer - это StackPanel
Похоже, что родительский элемент управления сохраняет ссылку на удаленный элемент управления, поскольку при редактировании значения в активномcontrol, привязка к привязанным обновлениям свойств удаляла контроль в памяти.