2013-08-19 18 views
15

Voglio mostrare la casella di conferma nel codice C#. Ho visto sopra la soluzione per questo, ma mi mostra un'eccezione a "Sì", in quanto "System.Nullable" non contiene la definizione di "Sì". Come dovrei rimuovere questo errore?Casella di conferma in C# wpf

private void listBox1_MouseRightButtonDown(object sender, MouseButtonEventArgs e) 
    { 
     if (sender is ListBoxItem) 
     { 
      ListBoxItem item = (ListBoxItem)sender; 
      Harvest_TimeSheetEntry entryToDelete = (Harvest_TimeSheetEntry)item.DataContext; 

      DialogResult dialogResult = System.Windows.Forms.MessageBox.Show("Are you sure?", "Delete Confirmation", MessageBoxButtons.YesNo); 

      if (dialogResult == DialogResult.Yes) // error is here 
      { 
       Globals._globalController.harvestManager.deleteHarvestEntry(entryToDelete); 
      } 
      else 
      { 
       System.Windows.MessageBox.Show("Delete operation Terminated"); 
      } 

     } 
    } 

risposta

76

Invece di utilizzare WinForm MessageBox, utilizzare il MessageBox fornito da WPF e successivamente utilizzare MessageBoxResult anziché DialogResult in WPF.

piace:

MessageBoxResult messageBoxResult = System.Windows.MessageBox.Show("Are you sure?", "Delete Confirmation", System.Windows.MessageBoxButton.YesNo); 
     if (messageBoxResult == MessageBoxResult.Yes) 
//........... 
+0

@ user1130886 Grazie per la modifica – Habib

+0

e come usarlo? –

+0

modifica il tuo esempio, ci sono diversi tipi, modifica 'DialogResult messageBoxResult = ...' a 'MessageBoxResult messageBoxResult = ...' o il contrario e nella clausola if dovrebbe essere 'if (messageBoxResult == MessageBoxResult.Yes)' – vinsa

Problemi correlati