【发布时间】:2022-01-02 18:19:27
【问题描述】:
我有三个班级:
- MyModel(纯 POCO 对象)
- MyModelWrapper(继承自 BindableBase)
- MyViewModel(它也继承自 Bindable 类)
我遇到的问题是我需要在 MyModelWrapper 中使用无参数构造函数,因为我将 MyViewModel 中的一个对象(ObservableCollection<MyModelWrapper>)绑定到 Datagrid Itemssource,如果它没有无参数构造函数,则无法插入新的行(它不会在 Datagrid 的末尾出现空行)。
所以,如果我希望用户可以插入新行,我需要一个无参数构造函数(我确实想要)。
我的问题是:我需要在 MyModelWrapper 中注入服务。
我可以在构造函数中注入服务:
IMyModelWrapperService Service;
public MyModelWrapper(IMyModelWrapperService Service)
{
Service = service;
}
但是这样Datagrid不会让用户插入新行。
如果我可以得到容器的引用,我可以做container.Resolve<IMyModelWrapper>(),但我认为我也需要通过构造函数注入容器,所以它不是一个有效的解决方案。
所以,我需要类似的东西:
[Inject]
IMyModelWrapperService Service;
但我认为属性注入在 Prism 中不起作用(至少我无法使用它)。
在 Prism 中需要无参数的类中注入服务的正确方法是什么?
谢谢
【问题讨论】:
标签: c# dependency-injection prism