MudDatePicker DefaultValue 加 DateChange
MudDatePicker DefaultValue plus DateChange
我想使用 MudDatePicker 元素,我需要能够在加载时设置默认值但同时为其定义 onChange 事件。我正在尝试这样做,但错误提示“该组件参数已用于此组件两次或多次”。我有办法做到这一点吗?
<MudDatePicker @bind-Date="@DefaultValue.Value" Label="Date" DateChanged="OnDateChange"
Required="true" Class="mb-3" />
删除 DateChanged="OnDateChange"
并将 @bind-Date="DefaultValue.Value"
更改为 @bind-Date="DefaultValue"
。为 属性 DefaultValue
创建 getter 和 setter。因为您有使用 @bind-Date="DefaultValue"
的两种方式绑定,所以每次更改值时都会调用 setter 部分。
我在下面添加了一些示例代码:
DateTime? _defaultValue = DateTime.Now;
private DateTime? DefaultValue
{
get => _defaultValue;
set
{
_defaultValue = value;
OnDateChange();
}
}
如果您在 Blazor 中有双向绑定,即 @bind-Date="date"
,您可以将其转换为具有必须设置值的更改事件的单向绑定。双向绑定只是语法糖,将在幕后执行相同的操作。
<MudDatePicker Date="@_date" Label="Date" DateChanged="OnDateChange"
Required="true" Class="mb-3" />
@inject ISnackbar Snackbar
@code {
DateTime? _date = new DateTime(2021, 12, 24);
void OnDateChange(DateTime? newDate)
{
_date=newDate;
// here you can do something when the date changes.
Snackbar.Add($"Date changed to {_date}");
}
}
这是一个您可以尝试的片段:https://try.mudblazor.com/snippet/mYcPFPvLnlyEHeOF
我想使用 MudDatePicker 元素,我需要能够在加载时设置默认值但同时为其定义 onChange 事件。我正在尝试这样做,但错误提示“该组件参数已用于此组件两次或多次”。我有办法做到这一点吗?
<MudDatePicker @bind-Date="@DefaultValue.Value" Label="Date" DateChanged="OnDateChange"
Required="true" Class="mb-3" />
删除 DateChanged="OnDateChange"
并将 @bind-Date="DefaultValue.Value"
更改为 @bind-Date="DefaultValue"
。为 属性 DefaultValue
创建 getter 和 setter。因为您有使用 @bind-Date="DefaultValue"
的两种方式绑定,所以每次更改值时都会调用 setter 部分。
我在下面添加了一些示例代码:
DateTime? _defaultValue = DateTime.Now;
private DateTime? DefaultValue
{
get => _defaultValue;
set
{
_defaultValue = value;
OnDateChange();
}
}
如果您在 Blazor 中有双向绑定,即 @bind-Date="date"
,您可以将其转换为具有必须设置值的更改事件的单向绑定。双向绑定只是语法糖,将在幕后执行相同的操作。
<MudDatePicker Date="@_date" Label="Date" DateChanged="OnDateChange"
Required="true" Class="mb-3" />
@inject ISnackbar Snackbar
@code {
DateTime? _date = new DateTime(2021, 12, 24);
void OnDateChange(DateTime? newDate)
{
_date=newDate;
// here you can do something when the date changes.
Snackbar.Add($"Date changed to {_date}");
}
}
这是一个您可以尝试的片段:https://try.mudblazor.com/snippet/mYcPFPvLnlyEHeOF