> ## Documentation Index
> Fetch the complete documentation index at: https://easyaf.nimbleapps.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# StateHasChangedConfig

## Definition

**Assembly:** CloudNimble.BlazorEssentials.dll

**Namespace:** CloudNimble.BlazorEssentials

**Inheritance:** System.Object

## Syntax

```csharp theme={"dark"}
CloudNimble.BlazorEssentials.StateHasChangedConfig
```

## Constructors

### &#x20;.ctor

#### Syntax

```csharp theme={"dark"}
public StateHasChangedConfig()
```

### &#x20;.ctor Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={"dark"}
public Object()
```

## Properties

### &#x20;Action

Allows the current Blazor container to pass the StateHasChanged action back to the BlazorObservable so ViewModel operations can
trigger state changes.

#### Syntax

```csharp theme={"dark"}
public System.Action Action { get; set; }
```

#### Property Value

Type: `System.Action`

#### Remarks

Will optionally drop intermediate StateHasChanged calls in a rapidly-updating environment, based on [StateHasChangedConfig.DelayMode](https://easyaf.nimbleapps.cloud/blazoressentials/api-reference/CloudNimble/BlazorEssentials/StateHasChangedConfig.md#delaymode)
and [StateHasChangedConfig.DelayInterval](https://easyaf.nimbleapps.cloud/blazoressentials/api-reference/CloudNimble/BlazorEssentials/StateHasChangedConfig.md#delayinterval).

### &#x20;BlazorObservableType

The [BlazorObservable](https://easyaf.nimbleapps.cloud/blazoressentials/api-reference/CloudNimble/BlazorEssentials/BlazorObservable.md)[Type](https://learn.microsoft.com/dotnet/api/system.type) associated with this Configuration instance.

#### Syntax

```csharp theme={"dark"}
public System.Type BlazorObservableType { get; set; }
```

#### Property Value

Type: `System.Type`

### &#x20;Count

#### Syntax

```csharp theme={"dark"}
public int Count { get; set; }
```

#### Property Value

Type: `int`

#### Remarks

This is public so

### &#x20;DebugMode

Flag for whether or not the render count and helpful debug feedback/warnings should be logged to the [Console](https://learn.microsoft.com/dotnet/api/system.console).
Default is [StateHasChangedDebugMode.Off](https://easyaf.nimbleapps.cloud/blazoressentials/api-reference/CloudNimble/BlazorEssentials/StateHasChangedDebugMode.md#off).

#### Syntax

```csharp theme={"dark"}
public CloudNimble.BlazorEssentials.StateHasChangedDebugMode DebugMode { get; set; }
```

#### Property Value

Type: `CloudNimble.BlazorEssentials.StateHasChangedDebugMode`

### &#x20;DelayInterval

An [Int32](https://learn.microsoft.com/dotnet/api/system.int32) specifying the number of milliseconds this BlazorObservable should wait between
[StateHasChangedConfig.Action](https://easyaf.nimbleapps.cloud/blazoressentials/api-reference/CloudNimble/BlazorEssentials/StateHasChangedConfig.md#action) calls. Default is 100 milliseconds.

#### Syntax

```csharp theme={"dark"}
public int DelayInterval { get; set; }
```

#### Property Value

Type: `int`

#### Remarks

[StateHasChangedConfig.DelayMode](https://easyaf.nimbleapps.cloud/blazoressentials/api-reference/CloudNimble/BlazorEssentials/StateHasChangedConfig.md#delaymode) must be set to [StateHasChangedDelayMode.Debounce](https://easyaf.nimbleapps.cloud/blazoressentials/api-reference/CloudNimble/BlazorEssentials/StateHasChangedDelayMode.md#debounce) or
[StateHasChangedDelayMode.Throttle](https://easyaf.nimbleapps.cloud/blazoressentials/api-reference/CloudNimble/BlazorEssentials/StateHasChangedDelayMode.md#throttle) for this setting to take effect.

### &#x20;DelayMode

A [StateHasChangedConfig.DelayMode](https://easyaf.nimbleapps.cloud/blazoressentials/api-reference/CloudNimble/BlazorEssentials/StateHasChangedConfig.md#delaymode) indicating whether or not this BlazorObservable should reduce the number of times
[StateHasChangedConfig.Action](https://easyaf.nimbleapps.cloud/blazoressentials/api-reference/CloudNimble/BlazorEssentials/StateHasChangedConfig.md#action) should be called in a given [StateHasChangedConfig.DelayInterval](https://easyaf.nimbleapps.cloud/blazoressentials/api-reference/CloudNimble/BlazorEssentials/StateHasChangedConfig.md#delayinterval)
Default is [StateHasChangedDelayMode.Off](https://easyaf.nimbleapps.cloud/blazoressentials/api-reference/CloudNimble/BlazorEssentials/StateHasChangedDelayMode.md#off).

#### Syntax

```csharp theme={"dark"}
public CloudNimble.BlazorEssentials.StateHasChangedDelayMode DelayMode { get; set; }
```

#### Property Value

Type: `CloudNimble.BlazorEssentials.StateHasChangedDelayMode`

## Methods

### &#x20;Clone

Copies the values from this [StateHasChangedConfig](https://easyaf.nimbleapps.cloud/blazoressentials/api-reference/CloudNimble/BlazorEssentials/StateHasChangedConfig.md) instance into a new one.

#### Syntax

```csharp theme={"dark"}
public CloudNimble.BlazorEssentials.StateHasChangedConfig Clone(CloudNimble.BlazorEssentials.BlazorObservable observable)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `observable` | `CloudNimble.BlazorEssentials.BlazorObservable` | The [BlazorObservable](https://easyaf.nimbleapps.cloud/blazoressentials/api-reference/CloudNimble/BlazorEssentials/BlazorObservable.md) instance the new [StateHasChangedConfig](https://easyaf.nimbleapps.cloud/blazoressentials/api-reference/CloudNimble/BlazorEssentials/StateHasChangedConfig.md) instance will be used for. |

#### Returns

Type: `CloudNimble.BlazorEssentials.StateHasChangedConfig`
A new [StateHasChangedConfig](https://easyaf.nimbleapps.cloud/blazoressentials/api-reference/CloudNimble/BlazorEssentials/StateHasChangedConfig.md) instance with the values populated from this instance.

#### Remarks

This is required because if we used DI to inject a [StateHasChangedConfig](https://easyaf.nimbleapps.cloud/blazoressentials/api-reference/CloudNimble/BlazorEssentials/StateHasChangedConfig.md) instance, we wouldn't be able to
have different configurations per `ViewModelBase`2\`, AND we would end up overwriting the
[StateHasChangedConfig.Action](https://easyaf.nimbleapps.cloud/blazoressentials/api-reference/CloudNimble/BlazorEssentials/StateHasChangedConfig.md#action)Actions\</see> from other Pages when the value was set.

### &#x20;Dispose

#### Syntax

```csharp theme={"dark"}
public void Dispose()
```

### &#x20;Equals Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={"dark"}
public virtual bool Equals(object obj)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `obj` | `object?` | - |

#### Returns

Type: `bool`

### &#x20;Equals Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={"dark"}
public static bool Equals(object objA, object objB)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `objA` | `object?` | - |
| `objB` | `object?` | - |

#### Returns

Type: `bool`

### &#x20;GetHashCode Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={"dark"}
public virtual int GetHashCode()
```

#### Returns

Type: `int`

### &#x20;GetType Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={"dark"}
public System.Type GetType()
```

#### Returns

Type: `System.Type`

### &#x20;MemberwiseClone Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={"dark"}
protected internal object MemberwiseClone()
```

#### Returns

Type: `object`

### &#x20;ReferenceEquals Inherited

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={"dark"}
public static bool ReferenceEquals(object objA, object objB)
```

#### Parameters

| Name | Type | Description |
| - | - | - |
| `objA` | `object?` | - |
| `objB` | `object?` | - |

#### Returns

Type: `bool`

### &#x20;ToString Inherited Virtual

> [!NOTE]
>
> Inherited from `object`

#### Syntax

```csharp theme={"dark"}
public virtual string ToString()
```

#### Returns

Type: `string?`

## Related APIs

* System.IDisposable


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.