gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 11:01:53 25 4
gpt4 key购买 nike

我正在我的 MainViewModel 中实例化我的存储库,并传递此实例以在我的子 ViewModel 中使用(即 CategoryViewModel)。我得到了一个

Severity Code Description Project File Line Error The type "CategoryViewModel" does not include any accessible constructors.

错误来 self 的主窗口,我在主窗口中声明了类别用户控件并将DataContext设置为CategoryViewModel:

<view:CategoryView Grid.Row="2" Grid.Column="0" Margin="5">
<view:CategoryView.DataContext>
<viewModel:CategoryViewModel />
</view:CategoryView.DataContext>
</view:CategoryView>

当我在 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();
}
}

最佳答案

如果您想要一个带参数的构造函数,您有两个选择:在代码后面实例化您的 View 模型,或使用 ObjectDataProvider class .

关于c# - WPF:ViewModel 类型不包含任何可访问的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33337649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com