タブコントロールにグリッドコントロールがあります。ユーザーがタブを離れようとしたときにグリッドを検証する必要があります。検証が失敗した場合は、タブの変更をキャンセルする必要があります(検証が成功するまで、ユーザーがタブを変更できないようにするため)。
このアプローチの問題は、SelectionChangedイベントを持つ子が原因で、タブコントロールのSelectionChangedイベントが何度も発生することです。これにより、検証メッセージが何度も表示されます。
また、タブの変更をキャンセルするには、SelectionChangedイベント内で同じタブを再選択して、イベントを再度発生させる必要があります。
この問題を回避する方法はありますか?