我有以下的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
,这很好用。我有一个按钮可以添加新行,通过向Resources
集合中添加新的ResourceViewModel
来完成 - 非常好。现在,我希望用户能够单击空白的最后一行,这将自动在DataGrid
中创建一个新记录。
我确保DataGrid
具有CanUserAddRows=True
。我确保绑定到的集合Resources
(ResourceViewModel
)中的类具有默认构造函数(无参数),并且我确保集合类型不是只读的。当用户单击最后一行时,会触发默认构造函数,但为了正确实例化新的ResourceViewModel
对象,我需要引用Resources
集合的网格或...
我想我可以在CellBeginEdit
事件上使用AttachedCommand
,然后在那里向可观察集合中添加新的ResourceViewModel
,是否有标准方法可以做到这一点?
注意,我已阅读以下问题,但这些对我没有帮助
编辑。事实证明,由于WPF DataGrid
中的一个错误,我正在做这个方面遇到问题。请参见Nigel Spencer's Blog。然而,他的修复方法目前对我无效...