Итак, я создал приложение для управления счетом для 2 команд. APP Layout. Как вы можете видеть, у меня есть команда A и Team B, 0 ниже добавляет очки для общего балла, а ниже у вас есть история того, в каких точках заработал каждый раунд. , когда вы нажимаете кнопку go, точки из 2 текстовых полей идут на добавление для всего балла и добавляют точки этого раунда в списки. Как вы можете видеть, я создал кнопку «Отменить». поэтому, если, например, я нажимаю кнопку Go случайно, я могу просто нажать на кнопку отмены, чтобы отменить кнопку, чтобы отменить мою ошибку. Дело в том, что я не знаю, какой код писать в событии клика кнопки отмены.Кнопка отмены C# UWP
private void Undo_Click(object sender, RoutedEventArgs e)
{
}
Примечание: мои списки привязаны к классу i. поэтому каждый список отображает свойство, которое ему нужно, через наблюдаемое объединение.
class List
{
public int ListA { get; set; }
public int ListB { get; set; }
}
UPDATE:
private void Undo_Click(object sender, RoutedEventArgs e)
{
var lastState = Lists.Last();
int teamAScore, teamBScore, listA, listB;
// this way i got the Active scores.
int.TryParse(CurrentScoreA.Text, out teamAScore);
int.TryParse(CurrentScoreB.Text, out teamBScore);
// this way i got the last score that i want to remove.
listA = lastState.ListA;
listB = lastState.ListB;
// here i remove the last score from the Active one.
teamAScore = teamAScore - listA;
teamBScore = teamBScore - listB;
// And here i replace my Active score with
// the new one that has the last states removed.
CurrentScoreA.Text = teamAScore.ToString();
CurrentScoreB.Text = teamBScore.ToString();
// this one removes the last states of the list
// so this way i can always remove the last part of my lsit
// from both my active score and list till i go back to 0.
Lists.Remove(lastState);
}
Thnx много для 2-х парней, которые ответили на мои вопросы ниже, и, читая их и пытается выполнить их я нашел свое решение !!!! :)
В теории вам просто нужно добавить строку обработчикам кликов, которые регистрируют, какое действие было выполнено (или даже запущена очередь выполняемых действий). Когда отменяется щелчок, вы просто отбрасываете все сохраненные действия. –
Undo должен вернуть все элементы в предыдущее состояние ... Это можно сделать двумя способами (возможно, больше): 1. Сохранять предыдущее состояние списков, копировать списки во временный список и сохранять их в нем, прежде чем делать какие-либо изменения ... но это может сильно пострадать от использования ресурсов. 2. Сохраните переменную mod las, которая позволит вам применить противоположное действие в списке, что-то вроде изменения структуры, которое включает в себя все возможные изменения, и сохранить последнее сделанное. –