【发布时间】:2016-11-15 19:22:33
【问题描述】:
我正在尝试通过单击按钮来关闭用户控件。 用户控件位于主窗口的网格中。
这就是我打开它的方式。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
UsLogin _UsLogin = new UsLogin();
OpenUserControl(_UsLogin);
}
private void OpenUserControl(UsLogin _UsLogin)
{
grdVensters.Children.Add(_UsLogin);
}
}
现在在用户控件中我有一个按钮来确认登录。 (还没有代码,这只是一个模型,用于在课堂上展示我希望它的外观) 我想让这个按钮关闭 grdVensters 中的这个用户控件,这样我的主窗口就准备好了。
我似乎无法在我的用户控件中访问 grdVensters。可以发个链接吗?
试过了:Close current UserControl 但最佳答案关闭了我不想要的 MainWindow。
这看起来像我需要的,但不能让它在我的情况下工作。 Causing a UserControl to remove itself (WPF)
提前致谢!
【问题讨论】:
-
在此处关闭可能意味着显示/隐藏或将其从网格的子集合中删除。最好将 UC 的 Visibility 属性设置为在 UC 一侧折叠,否则您可以向上遍历树以访问网格。
VisualTreeHelper课程将在这方面为您提供帮助。 -
我不确定我是否完全理解了这个问题,但我理解并同意 Mat。其他解决方案可能是将操作传递给控件。单击控件中的按钮时,只需调用操作即可。您可以在构造函数中传递操作,也可以通过属性将其公开。在 Action 的实现中(位于主窗口类中)调用
grdVensters.Children.Remove(_UsLogin);。这不应该需要大量出汗。老实说,因为您使用的是 WPF,所以我会使用 MVVM。
标签: c# wpf user-controls