Qual é a diferença entre IEditableObject e IRevertibleChangeTracking?

Qual é a diferença entreIEditableObject eIRevertibleChangeTracking (ambos do namespace System.ComponentModel)? Parece que o primeiro suporta transações explícitas, enquanto o segundo é mais implícito - mas o resultado líquido é o mesmo. Como devo implementar isso no código? No momento eu não faço nada emBeginEdit e ligarRejectChanges eAcceptChanges noEndEdit eCancelEdit respectivamente. Meu problema é que isso também aceitará as alterações feitas antes do BeginEdit.

É isso mesmo que a Microsoft queria ou estou tentando implementar duas interfaces mutuamente exclusivas?

questionAnswers(2)

yourAnswerToTheQuestion