实际上情况正好相反.CascadingValue用于将数据从父组件发送给子组件(通常向下多个级别).如果要将数据从子对象发送到父对象,请使用EventCallback参数,如下所示:
Parent
@page "/"
<CollectionAddress AddressChanged="AddressRecieved" />
@addressStree
@code {
private string addressStree;
public AddressDTO SelectedAddress { get; set; } = new AddressDTO()
{
Street = "Garden"
};
private async Task AddressRecieved(AddressDTO address)
{
addressStree = address.Street;
}
}
Child
<h3>Collection Address</h3>
<button @onclick="SendAddress">Change Adddress</button>
@code {
//[CascadingParameter]
//protected AddressDTO? SelectedAddress { get; set; }
[Parameter]
public EventCallback<AddressDTO> AddressChanged { get; set; }
private async void SendAddress()
{
await AddressChanged.InvokeAsync(new AddressDTO { Street = "Garden" });
}
}
Dto
public class AddressDTO
{
public string? Street { get; set; }
}