| File: Forms\InputRadioContext.cs | Web Access |
| Project: src\aspnetcore\src\Components\Web\src\Microsoft.AspNetCore.Components.Web.csproj (Microsoft.AspNetCore.Components.Web) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. namespace Microsoft.AspNetCore.Components.Forms; /// <summary> /// Describes context for an <see cref="InputRadio{TValue}"/> component. /// </summary> internal sealed class InputRadioContext { private readonly IInputRadioValueProvider _valueProvider; public InputRadioContext? ParentContext { get; } public EventCallback<ChangeEventArgs> ChangeEventCallback { get; } public object? CurrentValue => _valueProvider.CurrentValue; // Mutable properties that may change any time an InputRadioGroup is rendered public string? GroupName { get; set; } public string? FieldClass { get; set; } public InputRadioContext(IInputRadioValueProvider valueProvider, InputRadioContext? parentContext, EventCallback<ChangeEventArgs> changeEventCallback) { _valueProvider = valueProvider; ParentContext = parentContext; ChangeEventCallback = changeEventCallback; } /// <summary> /// Finds an <see cref="InputRadioContext"/> in the context's ancestors with the matching <paramref name="groupName"/>. /// </summary> /// <param name="groupName">The group name of the ancestor <see cref="InputRadioContext"/>.</param> /// <returns>The <see cref="InputRadioContext"/>, or <c>null</c> if none was found.</returns> public InputRadioContext? FindContextInAncestors(string groupName) => string.Equals(GroupName, groupName) ? this : ParentContext?.FindContextInAncestors(groupName); }