CalculateDocumentVariableEventArgs Class
Provides data for the CalculateDocumentVariable event.
Namespace: DevExpress.Blazor.RichEdit
Assembly: DevExpress.Blazor.RichEdit.v25.2.dll
NuGet Package: DevExpress.Blazor.RichEdit
Declaration
public class CalculateDocumentVariableEventArgs :
EventArgs
Remarks
Handle the CalculateDocumentVariable event to calculate a value of the DOCVARIABLE field. The VariableName event argument’s property identifies the processed field. Set the Value property to the field result value.
<DxRichEdit @bind-Selection="@selection"
@ref="@richEdit"
CalculateDocumentVariable="@(async x => await OnCalculateDocumentVariable(x))" />
@code {
DxRichEdit richEdit { get; set; }
Selection selection { get; set; }
protected override Task OnAfterRenderAsync(bool firstRender) {
if(firstRender)
InitializeDocument();
return base.OnAfterRenderAsync(firstRender);
}
async Task InitializeDocument() {
/* Surround the code that contains an asynchronous operation with a try-catch block to handle
the OperationCanceledException. This exception is thrown when an asynchronous operation is canceled. */
var documentAPI = richEdit.DocumentAPI;
documentAPI.BeginUpdate();
try {
await documentAPI.Paragraphs.CreateAsync();
var textSpan = await documentAPI.AddTextAsync("Number of paragraphs: ");
var field = await documentAPI.Fields.CreateAsync(textSpan.Interval.Start + textSpan.Interval.Length, "DOCVARIABLE paragraphCount");
await documentAPI.Fields.UpdateAsync(field);
} catch(OperationCanceledException e) {
Console.WriteLine($"{nameof(OperationCanceledException)} thrown with message: {e.Message}");
}
documentAPI.EndUpdate();
}
async Task OnCalculateDocumentVariable(CalculateDocumentVariableEventArgs eventArgs) {
try {
switch(eventArgs.VariableName) {
case "paragraphCount":
var paragraphs = await richEdit.DocumentAPI.Paragraphs.GetAllAsync();
eventArgs.Value = paragraphs.Count.ToString();
break;
default:
break;
}
} catch(OperationCanceledException e) {
Console.WriteLine($"{nameof(OperationCanceledException)} thrown with message: {e.Message}");
}
}
}

See Also