WPF:ViewModel 类型不包含任何可访问的构造函数

mrs*_*ent 5 c# wpf mvvm

我正在我的存储库中实例化我的存储库MainViewModel,并将此实例传递给我的孩子ViewModel(即CategoryViewModel)。我得到了

严重性代码 说明 项目文件行错误 类型“CategoryViewModel”不包含任何可访问的构造函数。

该错误来自我的主窗口,我在其中声明了类别用户控件并将其设置DataContextCategoryViewModel

<view:CategoryView Grid.Row="2" Grid.Column="0" Margin="5">
    <view:CategoryView.DataContext>
        <viewModel:CategoryViewModel />
    </view:CategoryView.DataContext>
</view:CategoryView>
Run Code Online (Sandbox Code Playgroud)

当构造函数中没有任何参数时,我不会收到此错误CategoryViewModel,因此我知道它与此有关,但不确定是什么导致了问题。我将不胜感激任何建议。下面是我的MainViewModelCategoryViewModel.

public class MainViewModel : BindableBase
{
    private readonly IRepository _repo = new Repository();
    private CategoryViewModel _categoryViewModel;

    public MainViewModel()
    {
        _categoryViewModel = new CategoryViewModel(_repo);
    }
}

public class CategoryViewModel : BindableBase
{       
    private IRepository _repo;
    public List<Category> CategoryCollection { get; set; }

    public CategoryViewModel(IRepository repo)
    {
        _repo = repo;            
       CategoryCollection = LoadCategory();

    }

    private List<Category> LoadCategory()
    {
        return _repo.GetAllCategories();
    }
}
Run Code Online (Sandbox Code Playgroud)

mni*_*tic 5

如果您想要带有参数的构造函数,您有两个选择:在代码隐藏中实例化视图模型,或使用ObjectDataProvider class