我知道这个错误很常见,但我不知道如何解决这个问题。
我的场景是这样的:
- 单击窗口 1 上的按钮,将显示窗口 2(填充文本框)。
- 在窗口 2 上完成交易(保存数据)。
- 单击窗口 2 上的“返回”按钮(关闭窗口 2,打开窗口 1)。
- 再次单击窗口 1 上的按钮以打开窗口 2 并填充数据。
- 发生错误。已添加具有相同 key 的项目。
最佳答案
听起来您正在向窗口 2 中的某些内容添加数据,该数据在整个应用程序或窗口 2 的所有实例中共享。当您第二次进入窗口 2 并填充数据时,您可能正在添加数据到已添加的 Dictionary
中。因此,消息“已添加具有相同 key 的项目”。
我的建议:在填充数据的代码中放置一个断点,并检查 Dictionary
中包含的值(如果您使用过并有权访问它)。然后检查您添加的数据,您应该会找到复制。
或者,有多种方法可以防止添加重复条目。
第一次完成后清理
字典
- 这样您只需添加一次数据(除非您的源数据中有重复的条目)。在添加条目之前查看
字典
中是否存在该键。您可以使用if (mSomeDictionary.ContainsKey(someEntryKey))
/ 来完成此操作
如果您只想使用最新值,则可以覆盖使用特定对象键入的数据。您可以使用以下方法来完成此操作:
mSomeDictionary[someEntryKey] = someValue;
。如果输入键尚不存在,则会自动添加一个新条目。
如果上述方法对您没有任何帮助,请发布发生错误的代码,并包含抛出的异常中的堆栈跟踪,我们可以进一步研究它。
关于wpf - 已添加具有相同键的项目错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8604252/