2010-12-15 5 views
1

Ich versuche etwas ähnliches zu tun;Ist es möglich, CommitEditCommand für ein Datagrid an einen ICommand im Ansichtsmodell zu binden?

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

Hierbei ist DeleteCommand ein vom View-Modell verfügbarer ICommand.

Ich dachte, ich könnte etwas ähnliches wie folgt tun, aber das scheint nicht der Fall zu sein;

Grundsätzlich versuche ich, das Ereignis Auftreten im Modell zu erfassen und darauf zu reagieren. Was fehlt mir hier?

Antwort

1

Meine anfängliche Ahnung ist nein ... das basiert auf den Lesungen von Vincent Sibals blog.

Es scheint, dass die CommitEditCommand auf der DataGrid das IEditableCollectionView Gegenstück nennt. So ...

DataGrid.CommitEditCommand ->IEditableCollectionView.CommitEdit ->IEditableObject.EndEdit

Deshalb, wenn Ihr Modell implementiert IEditableObject und Sie waren auf einer Zelle innerhalb der DataGrid Enter drücken (Inputbinding über die Befehlsmanager gespeichert) werden standardmäßig führen die DataGrid.CommitEditCommand und die Kaskade der Handlungen stromabwärts als mentione dabove.

Das Blog spricht über die Verwendung von Ereignissen wie RowEditEnding oder CellEditEnding, um den Befehl abzubrechen, der theoretisch bedeuten würde, dass Sie den Befehl abbrechen konnten und an diesem Punkt Route zu Ihrem gewünschten Verhalten.

+0

+1 für den Link zu Vince Sibals Blog – David