2017-06-29 40 views
-1

我必须添加显示导入进度的文本。现在我们有导入栏来显示progess,但我需要在栏上方添加一些文字,说“导入数据 - (#完整#)”。如何使用WebApi从后端通知UI端?

例如,如果我们导入100个数据,则可能会显示“正在导入数据 - (10个已完成100个)”。

请提出建议,如果有任何我们可以证明正在进行。

+0

它是网络或桌面? WinForms,Wpf?请提供更多详细信息 – Sergey

+0

我正在使用Webapi发送请求中的列表,但是我希望在每次迭代循环时以db的形式输入条目时回拨,以便我可以显示已成功导入的数据的数量。 - Ashutosh Adarsh 10 secs ago编辑 –

+0

为了避免在你的问题上有缺点,可以在其中添加更多关于你使用的技术的细节,并在更具体的内容中改述标题,例如“如何使用WebApi从后端通知UI端” – Sergey

回答

0

对于一个简单的解决方案,我认为你可以通过批量发布你的数据。假设您有100个数据,然后在每次迭代中发布10个数据,并且使用OnSuccess函数,您只需更新UI。您可能还需要非常小心异步请求和回滚机制,它在迭代中以某种方式失败,您需要清除发布的数据。

另一种方法是去一些实时的技术,如SignalR

希望我的想法可以帮助你以某种方式。

0

每次导入迭代后,您都可以生成一种事件ItemImported,并在UI侧通过更改进度条(进度条下方)的文本对此事件做出反应。

ItemImported可以在您的导入类中。 在“用户界面”我指的是负责与用户界面交互的类,例如一些ViewModel或只知道你的MainWindow.cs,它知道UI上的conrols。

要更改UI上的文本,您将需要使用例如Dispatcher.Invoke(如果它是桌面应用程序),或者在导入过程中正确地与UI进行交互。

+0

我正在使用Webapi发送请求中的列表,但我想要一个回调,当它进入数据库中的条目每循环迭代,以便我可以显示成功导入数据的数量。 –

+0

然后你可以忽略我的答案,这是为桌面:) – Sergey

+0

真的,我使用的Web API是不安的,它不保持状态,这就是为什么它看起来不可能显示。 –

相关问题