none
Abilitare e disabilitare il bottone X (chiudi) della finestra di windows (Mvvm) RRS feed

  • Domanda

  • Ciao a tutti, 

    ho bisogno di abilitare e disabilitare il pulsante chiudi [X] della finestra di window.

    Ho trovato diversi esempi ma nessuno che si adatta all'ambiente View Model.

    Mi servirebbe una cosa simile....

    Disabilita_Bottone_Chiudi_Window();

    Esegui_Metodo_Abc();

    Abilita_Bottone_Chiudi_Window();

    Qualcuno ha degli esempi?

    p.s. ricordo che lavoro in view model...

    Saluti..



    mercoledì 23 febbraio 2022 14:54

Tutte le risposte

  • Ciao Antonio,
      disabilitare il pulsante chiudi [x] della finestra è possibile ma potrebbe essere complicato.

    Ci sono però altre due possibilità:

    Possibilità 1: gestire nel ViewModel l'evento Closing della finestra ed annullare la sua chiusura se necessario.

    Window Code Behind

    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
    
            // Creo il ViewModel
            var viewModel = new MainWindowViewModel();
    
            // Aggiungo il metodo del ViewModel come gestore dell'evento Closing della finestra
            this.Closing += viewModel.OnWindowClosing;
            
            DataContext = viewModel;
        }
    }

    Nel tuo ViewModel devi avere il metodo gestore dell'evento

    public void OnWindowClosing(object sender, System.ComponentModel.CancelEventArgs e)
    {
        // Annulla la chiusura della finestra se occupati
        e.Cancel = _isBusy;
    }

    Possibilità 2: rimuovere il bordo della finestra con tutti i pulsanti standard tramite la proprietà WindowStyle=None. Aggiungere i pulsanti che desideri per la chiusura e/o iconizzazione della finestra con lo stile che preferisci. A questo punto hai il completo controllo del Look&Feel dei tuoi pulsanti.


    giovedì 24 febbraio 2022 08:05
  • Grande..!! 

    Grazie 1000 Ciao

    venerdì 25 febbraio 2022 08:50