4

如果这是一个愚蠢的问题,请原谅 - 我已经阅读了十几篇关于 WPF 命令基础架构的文章,我比以往任何时候都更加困惑。

我知道我可以使用内置命令来实现(例如)将标准剪切/复制/粘贴功能应用于任何焦点文本框的工具栏:

<ToolBar>
    <Button Command="{x:Static ApplicationCommands.Cut}">Cut</Button>
    <Button Command="{x:Static ApplicationCommands.Copy}">Copy</Button>
    <Button Command="{x:Static ApplicationCommands.Paste}">Paste</Button>
</ToolBar>

但我想扩展这种模式,以便可以使用单个工具栏在一系列不同控件上调用类似(但不相同)的操作。例如,我可能会创建一个从 ListBox 派生的自定义控件,它还支持剪切、复制和粘贴操作。尽管在 ListBox 上执行复制操作的编码与对 TextBox 的编码不同,但仍会从同一个工具栏按钮调用它。

所以,我的问题是:

[1] 需要在自定义控件中实现什么才能像上面的示例中那样对其进行命令?具体来说,当聚焦时,它应该可以从工具栏中发现。

[2] 工具栏中需要什么标记才能允许单个按钮调用不同的命令,具体取决于所关注的控件类型?

非常感谢您提供的任何建议。

蒂姆

4

1 回答 1

0

带有 MVVM 模式的通用 RelayCommands 是创建 WPF 应用程序的最佳方式。你可以在这里阅读。通过将 datacontext 指定为命令的存在类,这些命令可以绑定到任何控件。

标记将只使用 Binding 关键字而不是 x:Static。

让我知道这是否能解决您的问题。

苏珊特。

于 2011-03-02T10:10:52.063 回答