Pregunta

Cuál es la diferencia entre IDATITIONOBEJE y Irevertibblechangetracking (Ambos del espacio de nombres System.ComponentModel)? Parece que el primero admite una transacción explícita, mientras que la segunda está más implícita, pero el resultado neto es el mismo. ¿Cómo debo implementar esto en código? Por el momento no hago nada en Begedit y llama Rechazarchanges y Aceptar Cambios en Endedit y Canceledit respectivamente. Mi problema es que esto también aceptará los cambios realizados antes del BegineIt.

¿Es eso realmente lo que Microsoft quería o estoy tratando de implementar dos interfaces mutuamente excluyentes?

¿Fue útil?

Solución

Las dos interfaces no son mutuamente excluyentes. Están Simplemente pretendía admitir escenarios diferentes pero algo relacionados, que bien podría ser implementado por la misma clase dada. Aquí hay una explicación rápida:

Interfaz iEditableObject

los IDATITIONOBEJE La interfaz está diseñada para admitir el escenario donde un objeto necesita Gestionar su estado interno de alguna manera particular mientras se está editando.

Por esa razón, la interfaz incluye métodos que marcan explícitamente cuando la fase de edición se inicia, se completa o aborta, de modo que se puedan tomar las medidas apropiadas para modificar el estado del objeto en esas etapas.


Interfaz IREEVERTIBLECHANGETRACKING

los Irevertibblechangetracking La interfaz está diseñada para admitir el escenario donde un objeto necesita poder Reversión a su estado anterior.

La interfaz tiene métodos que marcan cuándo el estado actual del objeto debe hacerse permanente o debe revertirse al último estado permanente conocido.

Otros consejos

IDATITIONOBEJE se usa para modificaciones a corto plazo y revertancables, como cuadros de diálogo.

Irevertibblechangetracking se usa para cambios revertibles a largo plazo, como editar un registro y rastrear si el registro debe guardarse o no.

A menudo implemento ambas interfaces para tener la capacidad de apoyar dos niveles de deshacer.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top