通过DataGrid编辑ObservableDictionary

问题描述:

我将ObservableDictionary绑定到DataGrid.ItemSource。 我的问题是,当我尝试通过数据网格编辑一个值。 我收到异常“Edititem不允许用于此视图”。 我已经尝试了不同的解决方案 - 例如将ObservableDictionary.Values.ToList绑定到数据网格 - 这使得编辑项目成为可能,但原始值集合不再绑定。通过DataGrid编辑ObservableDictionary

那么,如何将ObservableDictionary绑定到DataGrid,并且我仍然保持它可编辑。 非常感谢!

+0

嗨,你使用autogeneratecolumns? ObservableDictionary是codeplex中的一个吗?一些代码示例将有助于:)。 – Costin 2011-01-20 15:50:15

您可能会发现以下帮助:

与编辑工作命令 默认命令已被添加到DataGrid支持编辑。这些命令和它们的默认输入绑定是:

  • ·BeginEditCommand(F2)·

  • CancelEditCommand(ESC)·

  • CommitEditCommand(回车)·

  • 的DeleteCommand (删除)

整个博客文章是在这里: http://blogs.msdn.com/b/vinsibal/archive/2008/10/01/overview-of-the-editing-features-in-the-wpf-datagrid.aspx

虽然试图做最近基本上同样的事情,我已经在ObservableKeyedCollection来了。它要求将密钥存储在项目类别中(顺便说一句,ObservableDictionary是使用KeyValuePair<>结构进行枚举的结果,并且该结构不可编辑),但它与DataGrid一起工作,允许它编辑项目。