Blazor:在其 parent 中有一个 child 组件更新模型的属性

Blazor: have a child component update properties of a model in its parent

我正在寻找一种方法来编辑 class/model 实例的参数,该实例从 parent 的 child 持续存在于 parent 中。

我有一个组件可以处理字符串的编辑,这些字符串通常是较大模型的一部分。

假设我有这些模型:

 public class Customer
{
    public string FirstName;
    public string LastName;
}
public class Arena
{
    public string Name;
    public string Location;
}

我的 parent 组件看起来像这样: .cs 部分(命名为:Parent.razor.cs):

public partial class Paren : ComponentBase
{
    public Arena myArena;
    public Customer myCustomer;
    protected override async Task OnInitializedAsync()
    {
        myArena = new Arena() { Location = "Centrum", Name = "TheBigGlobe" };
        myCustomer = new Customer() { FirstName = "kalle", LastName = "anka" };
    }
}

及其 .razor 部分(命名为:Parent.razor)

<h1>component test</h1>
@if(myArena != null)
{
    //pass paramenter by ref to child
}

如何创建一个 child 组件,将其更改绑定到 parent 中未知模型的实例和 属性?

例如,如何让 child 组件能够将 myArena.Name 的引用作为参数,然后在 parent 组件中更新它?请注意,传递给 child 的引用可以是来自任何其他 class-instance.

的任何其他参数,这一点很重要

我正在寻找的是一种编辑 class/model 实例参数的方法,该实例从 parent 的 child 持续存在于 parent 中。

您可以轻松创建子组件并传递 arena 参数。

 <childComponent arena={myArena}> </childComponent> 

@code { 

   [parameter] public Arena arena {get; set;}
}

如果你想从子组件中获取修改过的数据,你可以使用 EventCallBack。

这里有一篇文章描述了communicates between two components.

的几种方法