1
在我的場景中,我使用命令從數據庫中刪除了一些東西。我已經ReactiveCollection勢必DataGrid的WPF中,並按照處理刪除代碼:ReactiveCommand:在ThrownExceptions中獲取命令參數
RemoveProductCommand = ReactiveCommand.CreateFromTask<Product>(async product =>
{
await _licensingModel.RemoveProduct(product.Id);
});
RemoveProductCommand.ThrownExceptions.Subscribe(async ex =>
{
await ShowToUserInteraction.Handle("Could not remove product ");
});
Products.ItemsRemoved.Subscribe(async p =>
{
await RemoveProductCommand.Execute(p);
});
我的問題是,有沒有獲得在ThrownExceptions產品(命令參數)內置的方式嗎?
我當然可以做這樣的事情:
RemoveProductCommand = ReactiveCommand.CreateFromTask<Product>(async product =>
{
try
{
await _licensingModel.RemoveProduct(product.Id);
}
catch (Exception e)
{
throw new ProductRemoveException(product, e);
}
});
我的理由是,我想通知與信息用戶「無法刪除產品X」。
編輯: 好的,我編輯粘貼在這裏的代碼,並注意到等待command.Execute()和訂閱之間的區別。 是可能的:
Products.ItemsRemoved.Subscribe(async p =>
{
try
{
await RemoveProductCommand.Execute(p);
}
catch (Exception e)
{
}
});
但什麼ThrownExceptions?
太糟糕了,我希望統一解決方案,不管我如何調用命令 –