WPF命令的按钮状态不正确

WPF命令的按钮状态不正确,wpf,Wpf,首先,让我首先声明,为了帮助解决这个问题,我将非常乐意发布我需要的任何代码或其他信息。不幸的是,在这个时候,我只是不知道我需要发布什么 我有一个使用Microsoft Ribbon库的WPF应用程序。我知道ribbon控件已经被应用到了4.5框架中,但由于我仍在部署到一些XP机器上,我不得不使用4.0框架。我提到这一点只是为了防止旧图书馆存在一些模糊的问题 在应用程序中,我有一个RelayCommand,它绑定到一个功能区按钮上,该按钮本身无法正确启用(或者根本无法正确启用)。用于确定命令是否可

首先,让我首先声明,为了帮助解决这个问题,我将非常乐意发布我需要的任何代码或其他信息。不幸的是,在这个时候,我只是不知道我需要发布什么

我有一个使用Microsoft Ribbon库的WPF应用程序。我知道ribbon控件已经被应用到了4.5框架中,但由于我仍在部署到一些XP机器上,我不得不使用4.0框架。我提到这一点只是为了防止旧图书馆存在一些模糊的问题

在应用程序中,我有一个RelayCommand,它绑定到一个功能区按钮上,该按钮本身无法正确启用(或者根本无法正确启用)。用于确定命令是否可以执行的代码与其他几个按钮的代码完全相同。这些其他按钮工作正常。更糟糕的是,该行为在我的机器上是正确的,但在我尝试过的任何其他机器上都是错误的。它似乎没有与XP或Windows 7隔离。更糟糕的是,我在接口中放置了一个常规按钮,该按钮调用命令的CanExecute方法,即使该按钮被禁用,它也会报告一个True值

我完全不知道从哪里开始寻找。也许有人能指引我从哪里开始

提前感谢任何能在我绝望的状态下帮助我的人

*编辑*


一时兴起,我在运行不正常的机器上安装了.NET4.5,因为这是开发(my)机器和其他机器之间的显著区别。令我惊讶的是,这纠正了这个问题。也就是说,安装4.5版时是否应用了.NET4.0框架的更新?正如我上面提到的,我的目标是一些XP机器,所以我无法安装4.5。可能还有其他一些更新可以在不安装4.5的情况下安装?

您是否尝试过在ViewModel中添加
YourCommand.RaiseCanceTechChanged()
当您更改按钮启用状态的要求时,我没有尝试过。请看我上面的编辑,虽然详细说明了我取得的一些进展,这可能会使我走上一条不同的道路。我们试试看,看看它是否解决了这个问题?这是一个单行加法:)。现在测试应该不会太难吧?不确定.net45是否有任何特别的寻址命令更新。显式提升CanExecuteChanged的问题是因为更新CanExcute的条件并不能保证刷新所有绑定的控件。我将建议的调用放在事件处理程序中的按钮中,而不是放在更新条件的位置,因为有很多这样的位置。长话短说,这没有任何效果。对不起,我不知道当时没有看到你的项目或能够尝试一些可以复制这一点。让人困惑的是,为什么事件处理程序用于某些按钮,命令用于其他按钮。这太模糊了,无法猜测。看看你是否可以在一个小项目中重现这个问题(即使这个问题只发生在xp中),并将它添加到你的问题中,以便有人能够识别这个问题