У меня есть два пользовательских элемента управления, такие как LogInControl
и CheckControl
.Первоначально окно содержит LogInControl
, и окно успешного входа изменяется после успешного входа в систему: окно содержит CheckControl
.
Это код из MainWindow
public MainWindow()
{
InitializeComponent();
LogInControl logInControl = new LogInControl();
CheckControl checkControl = new CheckControl();
logInControl.OnSuccessfulLogin += (senser, e) =>
{
ChangeContentControl("Check");
};
checkInControl.LogOutClick += (senser, e) =>
{
ChangeContentControl("LogIn");
};
this.contentControl.Content = logInControl;
}
public void ChangeContentControl(string kindContentControl)
{
switch (kindContentControl)
{
case "LogIn":
{
...
this.contentControl.Content = new LogInControl();
}
break;
case "Check":
{
...
this.contentControl.Content = new CheckControl();
}
break;
}
}
Это код изLogInControl
public event EventHandler OnSuccessfulLogin;
private void loginButton_Click(object sender, RoutedEventArgs e)
{
OnSuccessfulLogin?.Invoke(this, e);
}
Работает правильно.Но у «CheckControl» есть кнопка «Выход», при нажатии на эту кнопку в окне должен появиться контент «LogInControl».Но это не происходит.
Это код из CheckControl
public event EventHandler LogOutClick;
private void logOutButton_Click(object sender, RoutedEventArgs e)
{
LogOutClick?.Invoke(this, e);
}
LogOutClick
Отслеживание событий останавливается при переходе в окно с CheckInControl
(LogOutClick становится пустым).Я не могу понять, почему это происходит.Помогите мне, пожалуйста.