通过DataGrid编辑ObservableDictionary

时间:2011-01-20 12:28:37

标签: c# wpf datagrid binding

我将ObservableDictionary绑定到DataGrid.ItemSource。 我的问题是当我尝试通过datagrid编辑一个值时。 我得到例外情况“此视图不允许使用Edititem”。 我尝试过不同的解决方案 - 例如将ObservableDictionary.Values.ToList绑定到datagrid - 这样就可以编辑项目,但原始值集合不再绑定。

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

2 个答案:

答案 0 :(得分:1)

在最近尝试做同样的事情时,我已经遇到了ObservableKeyedCollection。它需要将密钥存储在item类中(顺便说一句,它是ObservableDictionary的麻烦来源 - 它使用KeyValuePair<>结构进行枚举,并且该结构不可编辑),但与DataGrid一起使用,允许它编辑项目。

答案 1 :(得分:-1)

您可能会发现以下内容:

  

使用编辑命令   默认命令已添加到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