是否有关于如何在其他用户控件中启用(CanExecute)按钮的最佳实践?
一个简单的场景如下。在 UserControl_1 的数据网格中选择一行时,应在 UserControl_2 中启用一个按钮,并将所选行提供给 UserControl_2 的 viewModel。
当用户然后按下 UserControl_2 中的按钮时,它将使用来自 UserControl_1 的选定行的数据执行。
来自 Catel 新手的感谢。
是否有关于如何在其他用户控件中启用(CanExecute)按钮的最佳实践?
一个简单的场景如下。在 UserControl_1 的数据网格中选择一行时,应在 UserControl_2 中启用一个按钮,并将所选行提供给 UserControl_2 的 viewModel。
当用户然后按下 UserControl_2 中的按钮时,它将使用来自 UserControl_1 的选定行的数据执行。
来自 Catel 新手的感谢。
如果您使用的是 WPF(假设您是),则 CanExecute 将由 WPF 系统触发(准确地说是 CommandManager)。Catel 应该在属性更改时自动重新查询命令。
如果 CanExecute 的逻辑(或至少是数据)应该在多个用户控件之间共享(我说的是几个用户控件的视图模型),我建议创建一个在 ServiceLocator 中注册的服务。在命令的 CanExecute 中,您可以查询相同的数据(服务)并根据您要实现的逻辑返回 true 或 false。
你可以看看这篇文章。你会对你的问题有一个好主意。我不在这里发布代码,因为它是其他人的答案。请参考链接。