Nella mia applicazione ci sono 2 Form:
1) Form Principale
2) Form Login
Setto nell'App.xaml questo parametro StartupUri="MainWindow.xaml"
il codice Xaml di MainWindows è
mentre il suo Xaml.cs è
public partial class MainWindow : Window
{
static private Hashtable Form = new Hashtable();
static public void chiudiFinestra(string nomeFinestra){
foreach (DictionaryEntry temp in Form)
{
if (temp.Key.ToString().CompareTo(nomeFinestra) == 0)
{
Form.Remove(nomeFinestra);
Window finestra = (Window)temp.Value;
finestra.Close();
}
}
}
public MainWindow()
{
InitializeComponent();
this.controllaLogin();
}
public void controllaLogin()
{
if (!Classi.Sessione.isLoggato())
{
/* Se non sono loggato, chiudo tutte le finestre */
foreach(Window temp in Form){
temp.Close();
}
Form.Clear();
Login login = new Login();
Form.Add("Login", login);
login.ShowDialog();
}
}
}
Se avvio così il Codice si avvia il programma, crea la form di Login, faccio il login e quando chiudo la finestra di Login da questo errore.
Mentre se nel codice Xaml.cs della finestra principale commento la riga
this.controllaLogin();
Si avvia l'applicazione mostrandomi la finestra principale.
Dove sbaglio?
Ps.
Chiudo la finestra di Login dal LoginViewModel in questa maniera
MainWindow.chiudiFinestra("Login");