@typeparam TValue @inherits DComponentBase @* One radio of a DRadioGroup: checked while the group's value equals Value; choosing it sets the group's value. With LabelText it sits in a label.label followed by the text. *@ @if (LabelText is null) { @Radio } else { } @code { [CascadingParameter] DRadioGroup Group { get; set; } [Parameter] public TValue Value { get; set; } [Parameter] public DColor Color { get; set; } [Parameter] public DSize Size { get; set; } [Parameter] public bool Disabled { get; set; } [Parameter] public string LabelText { get; set; } RenderFragment Radio => @; string CssClass => Cx("radio", Group.GroupInvalid ? "radio-error" : ColorClass, SizeClass, Class); string ColorClass => Color switch { DColor.Neutral => "radio-neutral", DColor.Primary => "radio-primary", DColor.Secondary => "radio-secondary", DColor.Accent => "radio-accent", DColor.Info => "radio-info", DColor.Success => "radio-success", DColor.Warning => "radio-warning", DColor.Error => "radio-error", _ => null }; string SizeClass => Size switch { DSize.Xs => "radio-xs", DSize.Sm => "radio-sm", DSize.Lg => "radio-lg", DSize.Xl => "radio-xl", _ => null }; protected override void OnInitialized() { if (Group is null) throw new InvalidOperationException("DRadio must be inside a DRadioGroup of the same TValue."); } }