我是WPF的新手。我目前正在WPF中开发一个应用程序,我必须根据数据库中的值启用/禁用按钮。我使用Command和转换器在网上找到了解决方案。那么哪一个是更好的解决方案?为什么?
答案 0 :(得分:1)
使用按钮时,最好使用命令实现,因为它是内置的 并且您可以为谓词提供命令参数,转换器是您需要的 在每个你不想使用它的地方写,实例和地点。
总结一个带有CanExecute的命令将更具可重用性和可维护性。
答案 1 :(得分:0)
由于您是WPF的新手,我真的建议您开始学习Rx扩展和Reactive UI。 Reactive UI提供了一个命令框架,它可以在复杂场景中真正帮助您,在这些场景中,命令依赖于可以通过lambda函数和Observables计算的许多标志/条件。
如果你想创建一个复杂的应用程序,你一定要开始学习MVVM。对于简单的应用程序,请使用MVVM Light。对于更复杂的WPF应用程序,您可以使用Reactive UI或Microsoft PRISM。
看看Reactive UI here。在Reactive UI的主页中有一些Command示例,但您也可以在here
中获取更多示例例如,您可以声明这样的ICommand:
DisplayCommand = new ReactiveCommand(this.WhenAny(x => x.Name, x => !string.IsNullOrEmpty(x.Value)));
查看文档。
如前所述,您应该在此方案中使用Command而不是转换器。
此外,如果你想要收听的事件是除了点击之外的其他事件,那么请按照here所述使用System.Interactive行为/动作。