# OkCancelDialogAwareViewModel class

Base class for a dialog with the usual OK and Cancel buttons already wired up: OK closes the dialog with Ok, Cancel closes it with Cancel.

```csharp
public abstract class OkCancelDialogAwareViewModel : DialogAwareViewModel
```

## Public Members

| name | description |
| --- | --- |
| [OkCancelDialogAwareViewModel](OkCancelDialogAwareViewModel/OkCancelDialogAwareViewModel.md)() | Initializes a new instance of the [`OkCancelDialogAwareViewModel`](./OkCancelDialogAwareViewModel.md) class with an empty dialog caption. |
| [OkCancelDialogAwareViewModel](OkCancelDialogAwareViewModel/OkCancelDialogAwareViewModel.md)(…) | Initializes a new instance of the [`OkCancelDialogAwareViewModel`](./OkCancelDialogAwareViewModel.md) class with the given dialog caption. |
| [CancelCommand](OkCancelDialogAwareViewModel/CancelCommand.md) { get; } |  |
| [OkCommand](OkCancelDialogAwareViewModel/OkCommand.md) { get; } |  |
| virtual [Cancel](OkCancelDialogAwareViewModel/Cancel.md)(…) | Handles the Cancel button. The base implementation closes the dialog with Cancel; override it to discard pending changes first. |
| virtual [CanOk](OkCancelDialogAwareViewModel/CanOk.md)(…) | Decides whether the OK button is enabled. Override it to require valid input before the dialog can be confirmed. |
| virtual [Ok](OkCancelDialogAwareViewModel/Ok.md)(…) | Handles the OK button. The base implementation closes the dialog with Ok; override it to commit the entered data first, and skip the base call to keep the dialog open. |

## Remarks

Override [`Ok`](./OkCancelDialogAwareViewModel/Ok.md) to validate or commit before closing, and [`CanOk`](./OkCancelDialogAwareViewModel/CanOk.md) to disable the OK button while the dialog is incomplete.

## See Also

* class [DialogAwareViewModel](./DialogAwareViewModel.md)
* namespace [Eremex.AvaloniaUI.Controls.ApplicationServices](./index.md)

<!-- DO NOT EDIT: generated by xmldocmd for Eremex.Avalonia.Controls.ApplicationServices.dll -->
