WPF覆盖示例,绑定无法正常工作

时间:2013-10-15 09:09:56

标签: c# .net wpf mvvm overlay

我今天试过这个例子=> http://weblogs.asp.net/psteele/archive/2011/05/31/wpf-simple-busy-overlay.aspx用于在我的窗口中进行简单叠加,以显示用户即时进行操作。 但我有一点问题。在我继续执行操作的功能中,我将开头的IsBusy属性切换为true,最后切换为false。但gui没有更新,我没有看到叠加。我尝试了一个额外的按钮来切换叠加层,它可以正常工作。

有人知道我为什么会遇到这个问题吗?我认为它与绑定操作的优先级有关,但我不完全清楚它。

2 个答案:

答案 0 :(得分:1)

没有看到任何你自己的代码......

是否有可能在UI /主线程上发生切换IsBusy属性的操作?那么,在设置属性为true然后又回到false之间,UI实际上没有机会“刷新”自己?

如果设置IsBusy = true但不回复为false,是否显示了叠加层?如果是,那么这可能正在发生;您需要在不同的线程上调用该方法,以便UI可以更新。

答案 1 :(得分:1)

您的IsBusy属性需要是依赖项属性或实现INotifyPropertyChanged接口以使UI识别其更改。否则,UI将不知道您设置了属性,因此不会显示叠加层。

由于未知原因,这不是在您的示例的example source中完成的,因此它也不应该在那里工作。简而言之,您基本上希望在设置PropertyChanged属性后提升IsBusy事件。