【发布时间】:2022-01-26 16:12:21
【问题描述】:
如果不展示完整的概念,这有点难以解释,但我会尝试。我在Record.razor.cs - this.PersonellData 有员工表。我正在通过这种方法将新员工添加到表中:
private void AddNew()
{
this.PersonellData.Add(new Personell
{
Id = i + 1,
Name = "John " + i,
From = DateTime.Today + new TimeSpan(8, 30, 0),
Category = this.selectedCategoryValue,
});
this.DiaryRecord.Employees = new List<Personell>(this.PersonellData);
i++;
}
但是,在添加员工后,我想在 UI 中更改类别和(从)时间。我可以在 UI 中做到这一点,但 List<model> 本身的数据没有改变。我在
private async Task OnCreateNewDiaryRecord()
{
if (true)
{
this.DiaryRecordModel = new DiaryRecord
{
Id = this.DiaryRecordModel.Id,
Title = this.DiaryRecordModel.Title,
Description = this.DiaryRecordModel.Description,
Employees = this.DiaryRecordModel.Employees,
Date = this.SelectedDate,
};
await OnInitializedAsync();
}
isDialogVisible = false;
}
在 Index.razor.cs 中,我没有在 UI 中对列表中的每个员工进行任何更改。有什么建议如何让它工作吗?我应该为每个 UI 项添加 OnChange 之类的方法,但是如何继续更新实际列表?
这里是 DiaryRecord.cs:
public class DiaryRecord
{
public Guid Id { get; set; }
public string Title { get; set; }
public ICollection<Personell> Employees { get; set; }
}
这是列表项的 UI 部分
<Table DataSource="this.PersonellData" RowClassName="@(_=>"editable-row")" Bordered Size=@TableSize.Small>
<Column Title="From" TData="DateTime">
<TimePicker TValue="DateTime?" @bind-Value="@context.From" OnChange="this.OnDateValueChanged" />
</Column>
<Column Title="Category" DataIndex="@nameof(context.Category)" TData="string">
<Select DataSource="@this.CategoryList"
@bind-Value="@this.selectedCategoryValue"
LabelName="@nameof(Category.CategorySymbol)"
ValueName="@nameof(Category.CategorySymbol)"
DefaultActiveFirstItem="false"
EnableSearch
OnSelectedItemChanged="this.OnSelectedCategoryChangedHandler">
</Select>
</Column>
</Table>
我已尝试使用OnChange="this.OnDateValueChanged",但不知道如何继续。
【问题讨论】: