繁体   English   中英

关闭MainWindow网格中的UserControl

[英]Closing a UserControl in a Grid of MainWindow

我试图通过单击按钮关闭用户控件。 usercontrol位于主窗口的网格中。

这是我打开它的方式,它的工作原理。

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        UsLogin _UsLogin = new UsLogin();
        OpenUserControl(_UsLogin);

    }

    private void OpenUserControl(UsLogin _UsLogin)
    {
        grdVensters.Children.Add(_UsLogin);
    }
}

现在在usercontrol中我有一个确认登录的按钮。 (没有代码,这只是一个模型,在课堂上显示我想要它看起来)我希望这个按钮关闭grdVensters中的这个用户控件,所以我准备好我的主窗口。

我似乎无法访问我的usercontrol中的grdVensters。 我可以建立链接吗?

尝试: 关闭当前的UserControl,但最好的答案关闭MainWindow我不想要的。

这看起来像我需要但不能使它在我的情况下工作。 导致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();
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM