I tried to use DialogResult to check an Messagebox's YesNoCancel. I'm using the following code which I don't see any problem with:
DialogResult dlgResult = MessageBox.Show(
   "Save changes before closing?", 
   "Warning", 
   MessageBoxButton.YesNoCancel, 
   MessageBoxImage.Question);
But Visual Studio throws me error saying
'System.Windows.Window.DialogResult' is a 'property' but is used like a 'type'
There is a confliction here between the DialogResult Enumeration and the Window.DialogResult Property.
To solve this problem, you can use the fully qualified name of the enumuration. As the following:
System.Windows.Forms.DialogResult dlgResult = ...
However, since you are using WPF, use MessageBoxResult Enumeration to get the result of the message:
MessageBoxResult result = 
    MessageBox.Show("Would you like to see the simple version?", 
    "MessageBox Example", MessageBoxButton.OKCancel);
                        The problem is DialogResult is also a property of the form and the compiler thinks you are refering to this property.
You have several choices here:
System.Windows.Forms.DialogResult
var to let the compiler figure out the type and get rid of the name collisionDialogResult is not a type, its a property, you want the type MessageBoxResult
I can see from the question you are not using winforms. So the code would read,
MessageBoxResult result = MessageBox.Show(
    "Save changes before closing?",
    "Warning",     
    MessageBoxButton.YesNoCancel,
    MessageBoxImage.Question);
                        Try to declare dlgResult as var. Then it should work
    var dlgResult = 
        MessageBox.Show("Save changes before closing?", 
            "Warning", MessageBoxButton.YesNoCancel, MessageBoxImage.Question);
Also MessageBox.Show under WPF does return MessageBoxResult and not DialogResult. DialogResult is used in WindowsForms.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With