我有两个 ViewModel,一个包含另一个。内层有一个Microsoft.Practices.Prism.Commands.DelegateCommand
叫PrintCommand
。最好订阅CanExecuteChanged
此命令的事件。这部分照常实现:
OneViewModel.PrintCommand.CanExecuteChanged += CanExecuteChangedHandler;
问题是这个订阅不起作用。反编译后CanExecuteChanged
的样子:
public event EventHandler CanExecuteChanged
{
add
{
WeakEventHandlerManager.AddWeakReferenceHandler(ref this._canExecuteChangedHandlers, value, 2);
}
remove
{
WeakEventHandlerManager.RemoveWeakReferenceHandler(this._canExecuteChangedHandlers, value);
}
}
当我调试时,订阅后的几个步骤后_canExecuteChangedHandlers
似乎不包含任何活动处理程序,即使订阅者对象仍然存在。
我有点好奇,为什么会这样?