【发布时间】:2019-05-14 06:12:06
【问题描述】:
我正在使用带有 Prism 的 WPF。 我在 Module A 中有一个自定义 Canavs DrawingCanvas.cs,我已将 ApplicationCommands.Delete 设置为命令绑定,如下所示。
this.CommandBindings.Add(newCommandBinding(ApplicationCommands.Delete, Delete_Executed, Delete_Enabled));
我有另一个 Module B,其中有一个 MenuItem 删除,还有另一个 Button 用于删除。我已经为两者设置了 xaml 的命令,如下所示。
<MenuItem Header="Delete" x:Name="menuItemDelete" Command="{x:Static ApplicationCommands.Delete}"
<Button x:Name="buttonDelete" Background="Black" Height="25" Width="25" ToolTip="Delete" Command="{x:Static ApplicationCommands.Delete}"/>
这里 MenuItem 删除工作正常。(MenuItem 将在从 UI 中的 DrawingCanvas 中选择某些绘图时启用,并且在 Delete 时将调用 DrawingCanvas.cs 中的“Delete_Executed”菜单项点击)
但删除按钮始终禁用。在 UI 中的 DrawingCanvas 中选择某些绘图时,它不会启用。 我想知道为什么相同的命令适用于 MenuItem 但不适用于同一视图和同一模块中的 Button。
谁能帮我解决这个问题?我做错什么了吗?
提前致谢。
【问题讨论】:
-
我认为按钮需要命令目标。话虽如此,我几乎从不按照你的方式工作。由于这取决于 UI,我可能会使用静态命令并检查焦点或逻辑标准应该是什么。如果您不想一直启用您的按钮,也许您应该考虑这一点。
标签: wpf button command prism menuitem