我的视图模型中有惰性命令:
private ICommand _testCommand;
public ICommand TestCommand => _testCommand ?? (_testCommand = new Command(Test));
,由于某种原因,它在构造函数上被调用和初始化。 这是构造函数:
public TestViewModel(IMediator mediator, IDispatcherService dispatcherService, IGroupService groupService)
{
_mediator = mediator;
_dispatcherService = dispatcherService;
_groupService = groupService;
}
命令未绑定在UI中,除了在单元测试中,该属性不会在任何地方被调用,在单元测试中,构造属性之前调用视图模型时会发生此问题。
我尝试将断点放在属性上,当它在调用堆栈中输入断点时,它表明调用此属性的最后一个是[外部代码],而在此之前是构造函数。
有人知道这里到底发生了什么吗?