我是新来的WPF。我目前正在WPF中开发一个应用程序,在该应用程序中,我必须根据数据库中的值启用/禁用按钮。我在网络上找到了使用命令和转换器的解决方案。那么哪一个是更好的解决方案,为什么呢?
发布于 2013-09-04 02:09:34
在使用按钮时,最好使用命令实现,因为它是内置的,并且您可以为谓词提供一个命令参数,所以转换器是您需要编写的东西,在您不想使用它的每个地方都需要编写实例和位置。
总之,使用CanExecute的命令将更加可重用和可维护。
发布于 2013-09-04 22:18:40
由于您是WPF的新手,我建议您也开始学习Rx扩展和反应性UI。Reactive提供了一个命令框架,它可以在复杂的场景中真正帮助您,在这种情况下,命令依赖于可以通过lambda函数和可观察性计算的许多标志/条件。
如果您想要创建一个复杂的应用程序,您肯定应该开始学习MVVM。对于一个简单的应用程序,请使用MVVM。对于更复杂的WPF应用程序,您可以使用反应性UI或Microsoft。
看看这里的反应性UI。在Reactive主页中有一些命令示例,但是您也可以在这里中获得更多的示例
例如,您可以这样声明一个ICommand:
DisplayCommand = new ReactiveCommand(this.WhenAny(x => x.Name, x => !string.IsNullOrEmpty(x.Value)));看一下文档。
如前所述,对于此场景,您应该使用命令而不是转换器。
此外,如果您想要侦听的事件是除单击之外的其他事件,则使用System.Interactive行为/操作(如描述的这里 )。
https://stackoverflow.com/questions/18604332
复制相似问题