的ApplicationCommands期待是在工具栏或菜单,这将给他们FocusScope基于RoutedUICommands。如果您的按钮工具栏或菜单之外,那么你需要显式声明的重点范围:
<Button
Content="{Binding RelativeSource={RelativeSource Self}, Path=Command.Text}"
Command="ApplicationCommands.Copy"
FocusManager.IsFocusScope="True"/>
的CommandTarget用于声明哪个元素将提供FocusScope这意味着复制按钮才会启用时在CommandTarget声明的元素具有焦点,并在复印件的情况下,具有高亮显示文本:
<Button
Content="{Binding RelativeSource={RelativeSource Self}, Path=Command.Text}"
Command="ApplicationCommands.Copy"
CommandTarget="{Binding ElementName=MyElement}" />
在回答您的具体问题,你需要拦截ApplicationCommands.Copy命令获取/设置你的ViewModel的MyStringProperty;说实话,我不知道该从哪里开始弄清楚这一点。也许在这里更聪明的人可以提供这个难题。
感谢您的解释。根据你所说的话,通过代码处理它可能更容易,并且该按钮绑定到一个ICommand。 – 2010-04-02 13:28:17
不要这样想。 Xaml更清洁。 – 2013-05-24 03:58:13