[frontend] Two way data binding for Dropdown

This commit is contained in:
Lilian 2024-05-15 23:11:47 +02:00
parent f428d940ed
commit 39a9cd0f6e
No known key found for this signature in database
GPG key ID: 007CA12D692829E1

View file

@ -15,12 +15,26 @@
} }
@code { @code {
private TBind _value;
[Parameter] [EditorRequired] public required IEnumerable<DropdownElement<TBind>> Elements { get; set; } [Parameter] [EditorRequired] public required IEnumerable<DropdownElement<TBind>> Elements { get; set; }
[Parameter] [EditorRequired] public required TBind Value { get; set; }
[Parameter] public EventCallback<TBind> ValueChanged { get; set; } [Parameter]
private DropdownElement<TBind>? CurrentSelection { get; set; } [EditorRequired]
private RenderFragment? CurrentIcon { get; set; } public required TBind Value
private bool Visible { get; set; } = false; {
get => _value;
set
{
_value = value;
CurrentSelection = Elements.First(element => element.Selection != null && element.Selection.Equals(value));
CurrentIcon = CurrentSelection.Icon;
}
}
[Parameter] public EventCallback<TBind> ValueChanged { get; set; }
private DropdownElement<TBind>? CurrentSelection { get; set; }
private RenderFragment? CurrentIcon { get; set; }
private bool Visible { get; set; } = false;
private void UpdateSelected(DropdownElement<TBind> element) private void UpdateSelected(DropdownElement<TBind> element)
{ {