DevExpress XAF - проверьте, зарегистрирован ли объект перед выполнением кода в ViewController - PullRequest
0 голосов
/ 02 ноября 2018

Я занимаюсь разработкой с использованием DevExpress XAF, моя проблема немного сложнее, короче говоря, когда я сохраняю свой класс, я делаю изменения в других классах на основе предоставленных данных, я понял это с контроллером, который выполняет код, когда я закрыть подробный вид, проблема в том, что есть сценарий, который не соответствует моим потребностям, вот он:

Когда я открываю подробный вид, который уже существует, и когда я изменяю некоторые данные, когда я закрываю окно, программа отображает окно подтверждения («Вы хотите зарегистрироваться?), Когда я нажимаю нет, обычно мой контроллер представления не буду ничего делать, потому что я отказался изменить свои данные класса

Наконец, вот мой вопрос: как проверить в моем контроллере представления, был ли объект зарегистрирован или нет, прежде чем приступить к изменению, и выполнить мой код?

1 Ответ

0 голосов
/ 03 ноября 2018

Когда вы говорите зарегистрируйтесь , я думаю, что вы имеете в виду сохранить .

Вы можете использовать метод ObjectSpace.GetObjectsToSave() для получения списка объектов, которые будут сохранены при вызове ObjectSpace.CommitChanges(). Затем вы можете определить, находится ли View.CurrentObject в этом списке.

В качестве альтернативы вы можете использовать событие ObjectSpace_ObjectChanged. Как то так.

public class MyViewController : ObjectViewController<DetailView, Contact> {
    protected override void OnActivated() {
        base.OnActivated();
        ObjectSpace.ObjectChanged += ObjectSpace_ObjectChanged;
    }

    void ObjectSpace_ObjectChanged(object sender, ObjectChangedEventArgs e) {
        if (e.Object == View.CurrentObject) {
            // execute your business logic
        }
    }

    protected override void OnDeactivated() {
        base.OnDeactivated();
        ObjectSpace.ObjectChanged -= ObjectSpace_ObjectChanged;
    }
}

См. здесь для обсуждения в Центре поддержки аналогичного запроса.

...