Я пытаюсь написать приложение, в котором левая часть окна приложения представляет собой древовидное меню, а правая часть - пользовательский элемент управления в зависимости от выбора меню.
Я нарисовал границу вокруг правой стороны, и когда пользователь выбирает элемент в меню, я установил свойство Child границы для пользовательского элемента управления, соответствующего этому пункту меню, например:
Foo foo = new Foo(); // is a UserControl descendant
Bar bar = new Bar();
private void Foo_Selected(object sender, RoutedEventArgs e)
{
RightSideBorder.Child = foo;
}
private void Bar_Selected(object sender, RoutedEventArgs e)
{
RightSideBorder.Child = bar;
}
Проблема в том, что, когда bar
выбран и выбран foo
, bar
получает событие Unloaded
(и наоборот).
Что я хочу сделать, так это сохранить загруженные foo и bar, и просто переключаться между ними в зависимости от выбора меню. Как я мог сделать это? Изменение свойства Border.Child, очевидно, является неправильным способом сделать это.