我有这个非常小的问题,但不能轻易解决。目前,我的程序有 2 个按钮,一个“开始”和一个“取消”。当用户单击开始时,按钮应该立即消失:
StartButton.IsEnabled = false;
CancelButton.IsEnabled = true;
但这只有在 BackgroundWorker 完成时才会发生(按下按钮后将运行的所有代码),因为 UI 总是最后更新。我无法将这些命令添加到后台工作程序的“ProgressChanged”或“Completed”事件中。这些事件最多可能需要 10 分钟才能完成。
一种简单的方法是将这些命令添加到“ProgressChanged”部分,最后“完成”再次更改它们的状态。但我想避免这种情况,因为按钮应该一直显示它们的真实状态,而不是在几次“ProgressChanged”事件之后。当然总有办法,比如不使用按钮的 UI 属性。
有什么简短的解决方案吗?
将 Button.Property 更改添加到 ClickEvent 不起作用。这是其中的主要问题。我可以轻松地使用 BGW 的“已完成”部分来更改 Button 的背面以匹配起始状态。问题是在所有事件和 BGW 之前将它们设置好。