簡體   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