如何使用MVVM模式“禁用”WPF中的按钮?我正在尝试掌握WPF和MVVM并取得良好进展。WPF和MVVM进展顺利。但是,XAML和数据绑定方面是另一回事:)如何“禁用”按钮?例如,我的视图模型中有一个CanClose属性,用于确定应用程序当前是否可以关闭。如果工作线程没有做某事,则此属性设置为false,我想使按钮变灰,或者通过某种绑定以某种方式在视觉上禁用关闭按钮。我应该怎么办?谢谢!编辑-太糟糕了,我只能接受一个答案。这两个答案对我帮助很大。在Kent的帖子中,他更进一步解释了为什么要在应用程序中实现命令基础结构,而不是按照我建议的方式禁用按钮:Howto"disable"abuttoninWPFusingtheMVVMpattern?以及我最初问题的答案:Howto"disable"abuttoninWPFusingtheMVVMpattern?通过使用命令模式。在您的视图模型中:publicclassMyViewModel:ViewModel{privatereadonlyICommandsomeCommand;publicMyViewModel(){this.someCommand=newDelegateCommand(this.DoSomething,this.CanDoSomething);}publicICommandSomeCommand{get{returnthis.someCommand;}}privatevoidDoSomething(objectstate){//在这里做点什么}privateboolCanDoSomething(objectstate){//在这里返回true/false是启用/禁用按钮}}在你的XAML中:做点什么阅读这篇文章以了解更多信息关于DelegateCommand。只需将Button的IsEnabled属性绑定到CanClose:如果返回的ICommand的CanExecute值为false,则Button将被禁用。因此,无论您的按钮绑定到什么命令,当您想要禁用它时,看看您是否可以返回CanExecute值false。这也行得通:View:ViewModel:以上是C#学习教程:Howto"disable"abuttoninWPFusingtheMVVMpattern?如果分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注——privatebool_btnEnabled;publicboolbtnEnabled{get{返回_btnEnabled;}set{if(_btnEnabled!=value){_btnEnabled=value;OnPropertyChanged();}}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
