我正在使用MudBlazor,并在文档之后实现了一个MudSelect组件。
但是,我正在尝试从MudSelect中获得选定的值,但不确定要调用哪个事件。尝试了一些,如SelectedValuesChanged,但在我的代码块中,在更新所选内容时没有任何触发。
使用标准的HTML,我只需调用@onchange,然后为事件编写一个方法。这在MudBlazor中是行不通的。
这是我的MudSelect
<MudSelect T="Stage" Label="Stage" Variant="Variant.Filled" AnchorOrigin="Origin.BottomCenter">
<MudSelectItem Value="@(new Stage("Stage 1"))" />
<MudSelectItem Value="@(new Stage("Stage 2"))" />
<MudSelectItem Value="@(new Stage("Stage 3"))" />
<MudSelectItem Value="@(new Stage("Stage 4"))" />
<MudSelectItem Value="@(new Stage("Stage 5"))" />
</MudSelect>
下面是@code块
public class Stage
{
public Stage(string stageName)
{
StageName = stageName;
}
public readonly string StageName;
public override bool Equals(object o)
{
var other = o as Stage;
return other?.StageName == StageName;
}
public override int GetHashCode() => StageName?.GetHashCode() ?? 0;
public override string ToString() => StageName;
}
发布于 2022-10-20 03:04:50
您可以使用ValueChanged
事件回调,该事件回调是在值属性更改时触发的。
Implementation:
<MudSelect T="Stage"
ValueChanged="OnValueChanged"
Label="Stage"
Variant="Variant.Filled"
AnchorOrigin="Origin.BottomCenter">
<MudSelectItem Value="@(new Stage("Stage 1"))" />
<MudSelectItem Value="@(new Stage("Stage 2"))" />
<MudSelectItem Value="@(new Stage("Stage 3"))" />
<MudSelectItem Value="@(new Stage("Stage 4"))" />
<MudSelectItem Value="@(new Stage("Stage 5"))" />
</MudSelect>
@if(selectedStage is not null)
{
<br/>
<MudAlert Severity="Severity.Info">@(selectedStage.StageName) was selected</MudAlert>
}
@code {
private Stage selectedStage {get; set;}
private void OnValueChanged(Stage selected)
{
selectedStage = selected;
// Do other stuff
}
public class Stage
{
public Stage(string stageName)
{
StageName = stageName;
}
public readonly string StageName;
public override bool Equals(object o)
{
var other = o as Stage;
return other?.StageName == StageName;
}
public override int GetHashCode() => StageName?.GetHashCode() ?? 0;
public override string ToString() => StageName;
}
}
演示:
https://try.mudblazor.com/snippet/cOwGFYQavuiuzWnd
输出:
https://stackoverflow.com/questions/74132751
复制相似问题