【发布时间】:2021-08-26 01:31:05
【问题描述】:
我正在尝试在 blazor 中实现一个 MVVM,我在有趣的 here 上发现了这一点
我想更进一步,让我的页面从抽象类扩展,但我收到此错误:
错误 CS0115 'ToDoTest.BuildRenderTree(RenderTreeBuilder)':找不到合适的方法来覆盖 Pages_ToDoTest_razor.g.cs
这里是代码,抽象类:
public abstract class MyPage<T> : ComponentBase where T : IToDoViewModel
{
public abstract T VModel { get; set; }
protected override async Task OnInitializedAsync()
{
VModel.PropertyChanged += async (sender, e) =>
{
await InvokeAsync(() =>
{
StateHasChanged();
});
};
await base.OnInitializedAsync();
}
async void OnPropertyChangedHandler(object sender, PropertyChangedEventArgs e)
{
await InvokeAsync(() =>
{
StateHasChanged();
});
}
public virtual void Dispose()
{
VModel.PropertyChanged -= OnPropertyChangedHandler;
}
protected override void BuildRenderTree(RenderTreeBuilder builder)
{
base.BuildRenderTree(builder);
}
}
而且,后面的页面代码是:
public partial class ToDoTest : MyPage<IToDoViewModel>
{
[Inject]
override public IToDoViewModel VModel { get; set; }
override public void Dispose()
{
base.Dispose();
}
}
我做错了什么?你能帮帮我吗?
【问题讨论】:
标签: c# blazor blazor-server-side