Причина, по которой это происходит, заключается в том, что ваш текущий код не учитывает ту часть, где пользователь может нажать клавишу возврата, чтобы вернуться, чтобы снова удалить текст, для этого вы можете использовать свойство Start, чтобы узнать текущее значение и сделатьизменения соответственно
if (expiryEditText.Length() == 2 && e.Start != 2)
{
expiryEditText.Append("/");
}
else
{
if (expiryEditText.Length() >2 && expiryEditText.Text.IndexOf('-') == -1)
{
expiryEditText.Text = expiryEditText.Text.Insert(2, "-");
expiryEditText.SetSelection(expiryEditText.Text.Length);
}
}
Удачи
Возврат в случае запросов.