【发布时间】:2013-12-10 08:10:29
【问题描述】:
我有以下DataGrid
<DataGrid CanUserDeleteRows="True"
CanUserAddRows="True"
SelectedItem="{Binding SelectedResource, Mode=TwoWay}"
ItemsSource="{Binding Path=Resources, Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged,
IsAsync=True}"> ... </<DataGrid>
我正在使用 MVVM 模式绑定到 ObservableCollection<ResourceViewModel> Resources,这很好用。我有一个添加新行的按钮,这是通过将新的 ResourceViewModel 添加到 Resources 集合来完成的 - 很棒。现在,我希望用户能够点击空的最后一行,这会自动在 DataGrid 中创建一条新记录。
我已经确定DataGrid 有CanUserAddRows=True。我已确保我绑定到的集合 Resources (ResourceViewModel) 中的类具有默认构造函数(无参数),并且我已确保集合类型不是只读的。当用户单击最后一行时,默认构造函数会触发,但要正确实例化新的 ResourceViewModel 对象,需要引用 Resources 集合的网格...
我想我可以在CellBeginEdit 事件上使用和AttachedCommand,然后将一个新的ResourceViewModel 添加到那里的可观察集合中,有这样做的标准方法吗? p>
注意,我已经阅读了以下问题,这些问题对我没有帮助
编辑。事实证明,由于 WPF DataGrid 中的错误,我在执行此操作时遇到了问题。见Nigel Spencer's Blog。但是,他的修复目前对我不起作用...
【问题讨论】:
-
Nigel Spencer 博客文章的更新链接是Problems binding to SelectedValue with WPF DataGrid