我的 Dashboard.razor 中有以下内容
<FilteredEventsGrid Start="0"
ShowEndDate="true"
Filter="SmartQueries.Filter.Owner | SmartQueries.Filter.IncludeDisabled"
CanEditOwner="false"/>
<FilteredEventsGrid Start="0"
ShowEndDate="true"
Filter="SmartQueries.Filter.Pending | SmartQueries.Filter.Private"
CanEditOwner="false"/>
有些事件同时存在于这两个网格中。这两个网格都允许在其中编辑事件。那么,当其中一个网格中的事件被编辑时,它如何告诉另一个网格重新读取其数据呢?(每个内部读取其数据,没有Data
参数。)
我想到的最好的就是<FilteredEventsGrid>
有一个ValueChanged
EventCallback。而且两者都有Refresh()
方法。当它们的父组件收到ValueChanged
事件时,它会调用Refresh()
另一个组件。
定义一个服务
GridsSync.cs
来管理同步(如果我们可以在组件之间调用它)GridsSync.cs
注册要通过依赖注入使用的服务
程序.cs
假设这是您的组件,单击按钮是编辑事件的模拟,然后您将触发另一个组件也订阅了它的
GridEdited
事件。OnEdit
网格剃刀
附:
如果你的重读逻辑需要在 main/ui 线程上执行,那么它必须在 内完成
InvokeAsync();
,否则你可能会在外部执行,然后调用StateHasChanged()通知 ui 线程重新渲染。