我正在尝试编写一个应用程序,其中应用程序窗口的左侧是树状菜单,右侧是用户控件,具体取决于菜单选择。
我在右侧绘制了一个边框,当用户在菜单中选择一个项目时,我将边框的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属性显然是这样做的错误方法。
答案 0 :(得分:3)
将所有控件放在单个单元格网格中,并仅将其“可见性”属性更改为“折叠/可见”。