C# wpf中的确认框

42

我想在C#代码中显示确认框。我已经看到了上面的解决方案,但它会在“Yes”处显示“System.Nullable”没有包含“Yes”的定义的异常。我该如何解决这个错误?

 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");
            }

        }
    }
1个回答

145

不要使用WinForm MessageBox,而是使用WPF提供的MessageBox,在后续中使用MessageBoxResult代替WPF中的DialogResult

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

@user1130886 感谢您的编辑。 - Habib
如何使用它? - RAMM-HDR
请修改您的示例,因为有不同的类型,请将 DialogResult messageBoxResult = ... 修改为 MessageBoxResult messageBoxResult = ... 或者相反,在 if 语句中应该是 if (messageBoxResult == MessageBoxResult.Yes) - vinsa
@vinsa,感谢您指出这个问题。不知何故它被错误地编辑了,并且那次编辑也被通过了。我已经回滚了该编辑。 - Habib

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接