私はリボンにコピーボタンがあり、どのコントロールがフォーカスされているかを判断する必要があるので、呼び出すCopyメソッドを知っている必要があります。これを行う方法に関するアイデア?私はFocusManager.GetFocusedElementを考えていましたが、MVVMを使用しているので、何を引数として渡すべきかわかりません。何をコピーするかを知るために焦点を合わせる
private void Copy()
{
if (**Here_I_need_to_know_what_is_focused** is DataGridCell)
{
ApplicationCommands.Copy.Execute(null, this.DisplayedData);
}
else if ((this.CurrentFiles.SelectedItem is DSViewModel) || (this.CurrentFiles.SelectedItem is QViewModel))
{
this.CurrentFiles.Copy(this.CurrentFiles.SelectedItem);
}
else
{
ApplicationCommands.Copy.Execute(null, Keyboard.FocusedElement);
}
}
これはMVVMではありません。 ICommandを公開し、コピーする必要のあるものをコマンドパラメータとして渡す必要があります。 – Will
はい、私はビューがバインドするICommandを公開します。これは、ICommandによって呼び出されるメソッドです。 – KrisTrip