首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更改选择时,调用MudBlazor MudSelect中的哪个事件,以及如何实现该事件?

更改选择时,调用MudBlazor MudSelect中的哪个事件,以及如何实现该事件?
EN

Stack Overflow用户
提问于 2022-10-19 22:52:20
回答 1查看 230关注 0票数 1

我正在使用MudBlazor,并在文档之后实现了一个MudSelect组件。

但是,我正在尝试从MudSelect中获得选定的值,但不确定要调用哪个事件。尝试了一些,如SelectedValuesChanged,但在我的代码块中,在更新所选内容时没有任何触发。

使用标准的HTML,我只需调用@onchange,然后为事件编写一个方法。这在MudBlazor中是行不通的。

这是我的MudSelect

代码语言:javascript
运行
复制
<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块

代码语言:javascript
运行
复制
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;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-20 03:04:50

您可以使用ValueChanged事件回调,该事件回调是在值属性更改时触发的。

Implementation:

代码语言:javascript
运行
复制
<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

输出:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74132751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档