关闭主窗口网格中的用户控件

本文关键字:用户 控件 网格 窗口 | 更新日期: 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上设置相关属性来显示/隐藏登录视图。BooleanToVisibilityConverterbool的值转换为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();
        }
    }
}