Когда вы присваиваете CurrentRepositoryNumber
в текстовом поле, это, вероятно, запускает обработчик событий, который снова вызывает эту функцию. Это кажется вероятным, поскольку имя свойства предполагает, что оно контролирует текущий репозиторий, который этот метод затем каким-либо образом отображает.
Возможно, вы захотите временно исключить, присвоить свойству, а затем повторно включить этот обработчик событий. Или, может быть, вам нужно больше перепроектировать, чтобы прояснить обязанности - часто с графическими структурами, которые сложно сделать, и самый простой вариант - просто исключить из списка, назначить, повторно зарегистрировать, с этим типом шаблона:
textBox.TextChange -= YourHandler;
textBox.Text = newValue;
textBox.TextChange += YourHandler;