    

 ## On this page

  

 

 # Class CommandBase

 Last update: 16.07.2025 

Namespace: [VM](VM.md)  
Assembly: VM.dll

```csharp
public abstract class CommandBase : ObservableObject, IObservableObject, IDisposableObject

```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) ← [ObservableObject](VM.ObservableObject.md) ← [CommandBase](VM.CommandBase.md)

#### Implements

[IObservableObject](VM.IObservableObject.md), [IDisposableObject](VM.IDisposableObject.md)

#### Inherited Members

[ObservableObject.Dispose()](VM.ObservableObject.md#VM_ObservableObject_Dispose), [ObservableObject.RaisePropertyChanged(string)](VM.ObservableObject.md#VM_ObservableObject_RaisePropertyChanged_System_String_), [ObservableObject.RaisePropertyChanged(string, object, object)](VM.ObservableObject.md#VM_ObservableObject_RaisePropertyChanged_System_String_System_Object_System_Object_), [ObservableObject.Dispose(bool)](VM.ObservableObject.md#VM_ObservableObject_Dispose_System_Boolean_), [ObservableObject.DisposeManagedResources()](VM.ObservableObject.md#VM_ObservableObject_DisposeManagedResources), [ObservableObject.DisposeUnmanagedResources()](VM.ObservableObject.md#VM_ObservableObject_DisposeUnmanagedResources), [ObservableObject.IsDisposed](VM.ObservableObject.md#VM_ObservableObject_IsDisposed), [ObservableObject.TryDisposing](VM.ObservableObject.md#VM_ObservableObject_TryDisposing), [ObservableObject.Disposed](VM.ObservableObject.md#VM_ObservableObject_Disposed), [ObservableObject.Disposing](VM.ObservableObject.md#VM_ObservableObject_Disposing), [ObservableObject.PropertyChanged](VM.ObservableObject.md#VM_ObservableObject_PropertyChanged)

## Constructors

### CommandBase(Func&lt;object, bool&gt;)

```csharp
public CommandBase(Func<object, bool> canExecute)

```

#### Parameters

`canExecute` [Func](https://learn.microsoft.com/dotnet/api/system.func-2)&lt;[object](https://learn.microsoft.com/dotnet/api/system.object), [bool](https://learn.microsoft.com/dotnet/api/system.boolean)&gt;

## Properties

### Description

```csharp
public string Description { get; set; }

```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### IsExecuting

```csharp
protected bool IsExecuting { get; set; }

```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

## Methods

### CanExecute(object)

```csharp
public bool CanExecute(object parameter)

```

#### Parameters

`parameter` [object](https://learn.microsoft.com/dotnet/api/system.object)

#### Returns

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### OnCanExecuteChanged()

```csharp
protected void OnCanExecuteChanged()

```

### OnShouldExecute()

```csharp
protected void OnShouldExecute()

```

### CanExecuteChanged

```csharp
public virtual event EventHandler CanExecuteChanged

```

#### Event Type

[EventHandler](https://learn.microsoft.com/dotnet/api/system.eventhandler)

### ShouldExecute

```csharp
public event EventHandler ShouldExecute

```

#### Event Type

[EventHandler](https://learn.microsoft.com/dotnet/api/system.eventhandler)