Как получить DataGridEditAction.cancel - PullRequest
0 голосов
/ 20 марта 2012

Проверка примера сетки данных здесь http://www.silverlight.net/content/samples/sl4/toolkitcontrolsamples/run/default.html см. Раздел сетки данных

Это говорит о том, что если escape это дважды, это вызовет выход из редактирования строки.У меня всегда есть сетка данных, где пользователь может редактировать строку, но сейчас пользователь не может отменить редактирование. Как я могу получить строку для выхода с атрибутом отмены?

Мой обработчик

    void RoutingPolicyGrid_RowEditEnded(object sender, DataGridRowEditEndedEventArgs e)
    {
        if (e.EditAction == DataGridEditAction.Commit)
        {

        }
        else //DatagridEditAction.Cancel
        {

        }
    }

Просто добавьте сюда, если я делаю это вручную, как показано ниже, сетка данных все еще запускает RowEditEnded с действием фиксации, это означает, что он выполняется дважды с кодом ниже

    private void RoutingPolicyGrid_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Escape)
            this.RoutingPolicyGrid_RowEditEnded(sender, new DataGridRowEditEndedEventArgs(null, DataGridEditAction.Cancel));
    }

1 Ответ

1 голос
/ 03 апреля 2012

Посмотрев по следующей ссылке. Интерфейс IEditable должен быть реализован для того, чтобы иметь возможность откатить обратно издание строки и вызвать действие отмены.

http://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.canceledit%28VS.95%29.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...