Ich versuche, eine Benutzersteuerung mit einem Klick auf die Schaltfläche zu schließen. Die Benutzersteuerung befindet sich in einem Raster des Hauptfensters.Schließen eines UserControl in einem Raster von MainWindow
So öffne ich es und es funktioniert.
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
UsLogin _UsLogin = new UsLogin();
OpenUserControl(_UsLogin);
}
private void OpenUserControl(UsLogin _UsLogin)
{
grdVensters.Children.Add(_UsLogin);
}
}
Jetzt in der Benutzersteuerung habe ich eine Schaltfläche, um die Anmeldung zu bestätigen. (kein Code noch dies nur ein Modell in der Klasse zu zeigen, wie ich es aussehen soll) Ich möchte diese Schaltfläche, um diese Benutzersteuerung in GrdVensters zu schließen, damit ich mein Hauptfenster bereit habe.
Ich kann anscheinend nicht in meiner Benutzersteuerung auf grdVensters zugreifen. Kann ich eine Verbindung herstellen?
versucht: Close current UserControl aber beste Antwort schließt MainWindow, was ich nicht will.
Das sieht aus wie ich brauche, aber kann es nicht in meinem Fall funktionieren. Causing a UserControl to remove itself (WPF)
Vielen Dank im Voraus!
hier Closing Show/Hide bedeuten könnte, oder es vom Netz Kinder Sammlung entfernen. Am besten wäre es, die Sichtbarkeitseigenschaft von UC auf der UC-Seite zu reduzieren, andernfalls können Sie den Baum nach oben durchsuchen, um auf das Raster zuzugreifen. Die 'VisualTreeHelper' Klasse wird Ihnen dabei helfen. – AnjumSKhan
Ich bin mir nicht sicher, ob ich das Problem vollständig verstehe, aber ich verstehe und stimme Mat zu. Eine andere Lösung könnte darin bestehen, eine Aktion an die Steuerung zu übergeben. Wenn Sie auf die Schaltfläche im Steuerelement klicken, rufen Sie einfach die Aktion auf. Sie können die Aktion im Konstruktor übergeben oder sie einfach über eine Eigenschaft verfügbar machen. In der Implementierung der Aktion (in der Hauptfensterklasse) rufen Sie 'grdVensters.Children.Remove (_UsLogin);' auf. Dies sollte nicht zu viel Schweiß machen. Um ehrlich zu sein, würde ich MVVM gehen, da Sie WPF verwenden. –