【问题标题】:ValueChanged and ValueEpression in blazor?blazor 中的 ValueChanged 和 ValueEpression?
【发布时间】:2021-05-30 07:02:16
【问题描述】:

我已经在 blazor 组件中看到了 ValueChanged 和 ValueExpression 的使用,但不知道它们的用途以及 ValueChanged 和 ValueEpression 在 blazor 中的作用?

如果有人能用简单的语言解释它们,那将是一个很大的帮助/

【问题讨论】:

标签: c# asp.net-core blazor


【解决方案1】:

请查看InputBase Class Properties:

  • ValueChanged:获取或设置更新绑定值的回调。

  • ValueExpression:获取或设置一个标识绑定值的表达式。

通常,Razor 组件通过名为 @bind 的 HTML 元素属性提供数据绑定功能,该属性带有字段、属性或 Razor 表达式值,我们可以使用它将值绑定到 html 元素。如果我们不使用bind 属性,我们可以使用ValueExpressionValueChanged 来更新绑定值。请参考以下示例:

<EditForm Model="form">
    <p>Current value: @form.MyProperty</p>
    <InputSelect ValueChanged="@((string s) => DoThing(s))"
                 ValueExpression="@(()=> form.MyProperty)">
        <option value="0">0</option>
        <option value="100">100</option>
        <option value="200">200</option>
        <option value="300">300</option>
    </InputSelect> 
</EditForm>

@code {
    MyForm form = new MyForm(); //create an model instance.

    void DoThing(string s) //value changed event.
    {
        form.MyProperty = s; //get the current selected value and assign to the Model.
    }
    //define a class to get/set the dropdownlist selected value.
    public class MyForm
    {
        public string MyProperty { get; set; }
    } 
} 

如果使用@bind属性,示例代码如下:

    <p>Current Season: @model.Season</p>
    <InputSelect @bind-Value="model.Season">
        @foreach (var value in Enum.GetValues(typeof(Season)))
        {
            <option>@value</option>
        }
    </InputSelect>

@code { 
    Model model = new Model();    
    class Model
    {
        public Season Season { get; set; }
    }    
    enum Season
    {
        Spring,
        Summer,
        Autumn,
        Winter
    } 
}  

截图如下:

参考:

ASP.NET Core Blazor data binding

【讨论】:

  • ValueChanged:获取或设置更新绑定值的回调。这个界限值是什么意思。请你告诉我实际上我不明白这是什么意思
  • 绑定值是绑定到Input component的值,例如InputText组件会渲染为&lt;input type="text"&gt;元素,那么我们可以使用&lt;InputText Class="form-control" Value="@Value"&gt;绑定值InputText组件,@Value用于给input元素的value属性绑定一个值,该值就是绑定的值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-23
  • 1970-01-01
  • 2015-05-01
  • 1970-01-01
  • 2011-04-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多