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