关闭主窗口网格中的用户控件
本文关键字:用户 控件 网格 窗口 | 更新日期: 2023-09-27 18:18:03
我试图通过单击按钮关闭用户控件。用户控件位于主窗口的网格中。
我是这样打开它的
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。我可以做个链接吗?
已尝试:关闭当前UserControl但最好的答案是关闭主窗口我不想要的。
这看起来像我需要的,但不能使它在我的情况下工作。导致UserControl删除自身(WPF)
提前感谢!
如果你想使用WPF,你应该使用MVVM。网络上有大量的资源。不过,我已经创建了一个小示例,它将引导您找到正确的方向。您可以通过在ViewModel上设置相关属性来显示/隐藏登录视图。BooleanToVisibilityConverter
将bool
的值转换为Visibility
的值。我还添加了一个CheckBox来演示如何更改可见状态的简单示例。
XAML
<StackPanel>
<StackPanel.Resources>
<BooleanToVisibilityConverter x:Key="bToV" />
</StackPanel.Resources>
<CheckBox IsChecked="{Binding Path=IsLoginVisible, UpdateSourceTrigger=PropertyChanged}" />
<Button Content="Login"
Visibility="{Binding Path=IsLoginVisible, Converter={StaticResource bToV}}" />
<!--<yournamespace:UsLogin Visibility="{Binding Path=IsLoginVisible, Converter={StaticResource bToV}}/>-->
</StackPanel>
代码后面
public partial class MainWindow
{
public MainWindow()
{
this.InitializeComponent();
DataContext = new MainViewModel();
}
}
public class MainViewModel : ViewModelBase
{
private bool _isLoginVisible;
public bool IsLoginVisible
{
get
{
return _isLoginVisible;
}
set
{
_isLoginVisible = value;
OnPropertyChanged();
}
}
}