internal void DoIdle() { // only call the view model DoIdle if this control has focus // otherwise, we should skip and this will be called again // once focus is regained IViewModel viewModel = DataContext as IViewModel; if (viewModel != null && this.IsKeyboardFocusWithin) { viewModel.DoIdle(); } }