Ваш вопрос сводится к "как изменять неизменяемые поля", что как бы намекает, что вы, скорее всего, изобретаете велосипед. Озвучте проблему, которую вы пытаетесь решить, скорее всего, уже существует нормальный паттерн для ее решения.
Создаете новый bank, передаете его в качестве модели в диалог, валидируете, из диалога возвращаете уже провалидированную модель, добавляете ее в коллекцию.
Ок, т.е. у вас есть коллекция, она привязана к какому-то listView, при выборе в нем элемента вы отображаете текст из него в textBox-ах. TextBox привязан к выделенному элементу и при изменении значения в нем, это значение попадает в элемент коллекции. Так? Тогда делаете как я и описал - валидируете данные в коллекции.
Может, вы уже сформулируете ваш вопрос целиком и с примерами кода или так и придется из вас информацию по кускам вытягивать?
В mvvm у вас есть ViewModel, которая привязана ко View: контролы для отображения привязаны к свойствам VM, контролы для управления привязаны к командам VM. Соответственно, когда юзер нажимает на кнопку, из вашего обработчика команды вы имеете доступ к свойстам модели, а значит можете их провалидировать.
@lightman "Синхронизация с реестром" - нет такого. Скорее всего, дело в биндингах (привязках свойств к свойствам/методам). Если вы не работали с WPF, то такие вещи легко не заметить. Поставьте брейкпойнты на все строчки с Registry и смотрите, когда к ним происходят обращения.
@isxaker что значит "не успешно"? Если EndExecuteReader вернет SqlDataReader, то его стоит задиспозить, если не вернет, то диспозить нечего. Вообще, воспользуйтесь перегрузкой BeginExecuteReader(AsyncCallback, Object), с ней, возможно, вам будет проще уложить в голове, что вы пытаетесь сделать.
@mixtape774
Подводные камни есть везде. Я дал вам направление, в котором вам стоит начать изучение вопроса, и пример, чтобы вы могли им воспользоваться, если вам надо решить задачу прямо сейчас и у вас нет времени с этим разбираться. В целом, тут ничего сложного, это базовые вещи, про которые вы можете прочитать в любой популярной книге про winforms.
Я вам пояснил, что собой представляет TabControl (кнопки для переключения вкладок и панель, в которой отображаются сами вкладки при нажатии кнопок) и как его сделать самостоятельно с нужным вам функционалом общих элементов.