やりたかったこと
登録ボタンを押した時に入力エラーがあったコントロールにフォーカスを当てたい。
画面には複数のTabControlがあり単純にフォーカスを当てるだけだと表示されないので、
エラーコントロールがあるTabControlを選択する必要がある。
実装
private void SelectTabItem(DependencyObject obj)
{
if (obj == null) return;
var parent = LogicalTreeHelper.GetParent(obj);
if (parent is System.Windows.Controls.TabItem)
{
var tab = parent as System.Windows.Controls.TabItem;
tab.IsSelected = true;
}
this.SelectTabItem(parent);
}