0

我是 WPF 的新手。我目前正在 WPF 中开发一个应用程序,我必须根据数据库中的值启用/禁用按钮。我在网上找到了使用命令和转换器的解决方案。那么哪一个是更好的解决方案,为什么?

4

2 回答 2

1

使用按钮时最好使用命令实现,因为它是内置的,您可以为谓词提供命令参数,转换器是您需要编写、实例化并放置在每个您不想的地方的东西使用它。

用 CanExecute 总结一个命令会更可重用和可维护。

于 2013-09-04T02:09:34.917 回答
0

由于您是 WPF 的新手,我真的建议您也开始学习 Rx 扩展和反应式 UI。反应式 UI 提供了一个命令框架,可以在复杂场景中真正为您提供帮助,在这些场景中,您的命令依赖于许多可以通过 lambda 函数和 Observable 计算的标志/条件。

如果你想创建一个复杂的应用程序,你绝对应该开始学习 MVVM。对于简单的应用程序,请使用 MVVM Light。对于更复杂的 WPF 应用程序,您可以使用 Reactive UI 或 Microsoft PRISM。

在这里查看反应式 UI。Reactive UI 的主页中有一些命令示例,但您也可以在此处获取更多示例

例如,您可以像这样声明一个 ICommand:

 DisplayCommand = new ReactiveCommand(this.WhenAny(x => x.Name, x => !string.IsNullOrEmpty(x.Value)));

看看文档。

如前所述,对于这种情况,您应该使用命令而不是转换器。

此外,如果您要侦听的事件是 click 以外的其他事件,请使用此处描述的 System.Interactive 行为/动作。

于 2013-09-04T22:18:40.017 回答