Звучит так, как будто вы добавляете данные к чему-либо в окне 2, которое является общим для всего приложения, или для всего экземпляра окна 2. Когда вы входите в окно 2 во второй раз и заполняете данные, вы, вероятно, добавляете данные в Dictionary
, который уже был добавлен. Отсюда сообщение «Элемент с таким же ключом уже добавлен».
Мой совет: поставьте точку останова в коде, где вы заполняете данные, и проверьте значения, содержащиеся в Dictionary
(если вы использовали один и имеете к нему доступ). Затем проверьте данные, которые вы добавляете, и вы должны найти репликацию.
Кроме того, существуют различные способы предотвращения добавления дублирующих записей.
Очистите Dictionary
, когда вы закончили с ним в первый раз - таким образом, вы добавите данные только один раз (если у вас нет дублирующих записей в ваших исходных данных).
Проверьте, существует ли ключ в Dictionary
перед добавлением записи. Вы можете сделать это, используя if (mSomeDictionary.ContainsKey(someEntryKey))
/
Если вы просто хотите использовать последние значения, вы можете просто переопределить данные, связанные с определенным объектом. Вы можете сделать это, используя что-то вроде: mSomeDictionary[someEntryKey] = someValue;
. Если ключ ввода еще не существует, автоматически добавляется новая запись.
Если ничего из вышеперечисленного вам не поможет, опубликуйте код, в котором произошла ошибка, и включите трассировку стека из брошенного исключения, и мы сможем изучить его подробнее.