是否可以将Datagrid上的CommitEditCommand绑定到视图模型中的ICommand?

时间:2010-12-15 22:38:10

标签: .net wpf viewmodel wpfdatagrid icommand

我正在尝试做类似的事情;

<Button Command="{Binding DeleteCommand}" />

其中DeleteCommand是视图模型公开的ICommand。

我以为我可以做类似以下的事情,但似乎并非如此;

<DataGrid CommitEditCommand="{Binding CommitCommand}" />

基本上我正在尝试捕获视图模型中的事件并对其进行操作。我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

我最初的预感是否定的......这是基于Vincent Sibal blog的读数。

CommitEditCommand上的DataGrid似乎会调用IEditableCollectionView对应方。所以......

DataGrid.CommitEditCommand - &gt; IEditableCollectionView.CommitEdit - &gt; IEditableObject.EndEdit

因此,如果您的模型正在实施IEditableObject并且您在DataGrid点击Enter(通过CommandManager存储的InputBinding)中的单元格,则默认执行DataGrid.CommitEditCommand并将其设置为下游的一连串行动,如提到的那样..

博客确实谈到了使用RowEditEndingCellEditEnding之类的事件取消命令,这意味着理论上你可以取消命令并在那时路由到你想要的行为。 / p>