Couple other ideas
1) Make them readonly instead !visible
partial void Email_IsReadOnly(ref bool result)
{
if (this.PhoneNumber != null)
result = true;
}
2) Use SelectedChanged event on the screen query on the left. Then run your logic on the current selected entity.