У меня есть подкласс DelegateCommand, который завершается с ошибкой InvalidProgramException «Среда выполнения языка команд обнаружила недопустимую программу». когда я звоню Выполнить.
Мой подкласс выглядит так:
public class SaveOrderCommand : DelegateCommand<IOrder>
{
[Dependency]
public IOrderService OrderService { get; set; }
public SaveOrderCommand()
: base(p => this.ExecuteSaveOrder(p), p => this.CanExecuteSaveOrder(p))
{ }
public bool CanExecuteSaveOrder(IOrder order)
{
return true;
}
public void ExecuteSaveOrder(IOrder order)
{
if (order == null)
return;
IProductOrderService productSpecificOrderService = this.OrderService.RegisteredServices[order.GetType()] as IProductOrderService;
order = productSpecificOrderService.Save(order);
}
}
Я вижу, что предоставление ссылок на базовый класс методам в подклассе может быть проблемой, но если это проблема, кто-нибудь может предложить лучшую реализацию?