在我的应用程序中,我有一个Button
。如果单击该按钮,则将执行针对数据库的选择,并且结果将显示在ListView
中。
由于选择非常复杂,因此需要一些时间来检索数据。
当我单击Button
时,应禁用Application-Window
,直到加载数据。
但是,当我将Window的IsEnabled
-Property设置为false时,加载数据后窗口将被禁用。
我试图用Window
在另一个线程中禁用BackgroundWorker
。但是然后我得到一个异常(exception),该窗口已被另一个线程使用。
在检索数据之前,如何禁用Window
?
最佳答案
您在后台线程中执行了错误的操作。您必须从UI线程影响UI,并且数据加载应在后台线程中进行。
最简单的方法是使用BackgroundWorker加载数据,并将其存储在类级变量中,并且当您的后台工作是complete时,UI重新启用并从类级变量中加载数据。
关于c# - 禁用窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2874012/