在Blazor中,你可以使用参数和事件来从子组件向父组件传递ViewModel,并从父组件向子组件传递ViewModel。
下面是一个示例:
在父组件中,定义一个ViewModel并将其传递给子组件:
// 父组件中的ViewModel
public class ParentViewModel
{
public string Message { get; set; }
}
// 父组件
@page "/parent"
@using BlazorApp.Shared
Parent Component
@ViewModel.Message
@code {
private ParentViewModel ViewModel { get; set; } = new ParentViewModel();
private void UpdateViewModel(ParentViewModel updatedViewModel)
{
ViewModel = updatedViewModel;
}
}
在子组件中,接受ViewModel作为参数,并触发一个事件来向父组件传递更新的ViewModel:
// 子组件
Child Component
Child Message: @ViewModel.Message
@code {
[Parameter]
public ParentViewModel ViewModel { get; set; }
[Parameter]
public EventCallback OnUpdate { get; set; }
private void UpdateViewModel()
{
ViewModel.Message = "Updated from child component";
OnUpdate.InvokeAsync(ViewModel);
}
}
在上面的示例中,通过将ViewModel作为参数传递给子组件,并在子组件中触发一个事件来将更新后的ViewModel传递回父组件。父组件通过接收子组件的事件来更新自己的ViewModel。
使用上述代码,你可以在Blazor应用程序中从子组件向父组件传递ViewModel,并从父组件向子组件传递ViewModel。