C# 重新渲染访问同一列表的多个Blazor组件

C# 重新渲染访问同一列表的多个Blazor组件,c#,html,blazor,C#,Html,Blazor,我的项目中有一个AppState类,用于跟踪列表。我还有一个组件向用户显示列表,还有一个组件通过使用列表进行一些计算来显示一些其他数据 当我添加到列表中时,我希望可视化列表组件和计算组件都更新,但取决于我从哪个组件添加项目,它只更新该组件,或者两者都不更新(如果我从父级添加) 有没有办法告诉所选组件它们必须重新渲染?当我初始化列表时,我成功地使它工作,但当我进行更改时,它没有重新呈现 我所想的一些psuedo代码: <ShoppingList @bind="appState.Sh

我的项目中有一个AppState类,用于跟踪列表。我还有一个组件向用户显示列表,还有一个组件通过使用列表进行一些计算来显示一些其他数据

当我添加到列表中时,我希望可视化列表组件和计算组件都更新,但取决于我从哪个组件添加项目,它只更新该组件,或者两者都不更新(如果我从父级添加)

有没有办法告诉所选组件它们必须重新渲染?当我初始化列表时,我成功地使它工作,但当我进行更改时,它没有重新呈现

我所想的一些psuedo代码:

<ShoppingList @bind="appState.ShoppingList"/>
<Totals @bind="appState.ShoppingList"/>

@code {
    appState.AddToList(new item{
        amount = 1,
        name = "beef"
    });
}

@代码{
appState.AddToList(新项目{
金额=1,
name=“牛肉”
});
}

我曾希望这会使组件在列表更改时更新,但遗憾的是,事实并非如此。

解决方案非常简单,接近于我所认为的可能:

在父组件中:

<ShoppingList ShoppingList="@appState.ShoppingList"/>
<Totals Total="@appState.Total"/>

@code {
    appState.AddToList(new item{
        amount = 1,
        name = "beef"
    });
}

@代码{
appState.AddToList(新项目{
金额=1,
name=“牛肉”
});
}
然后在组件中添加一个参数:

@code {
    [Parameter]
    public List<AppState.Item> ShoppingList{ get; set; }
}
@code{
[参数]
公共列表ShoppingList{get;set;}
}