的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