Как реализовать этот логический поток? - PullRequest
0 голосов
/ 16 мая 2011

хорошо, вот история ...

У меня есть 3 текстовых поля для выбора пользователем ....

[текстовое поле A] [текстовое поле B] [текстовое поле C]

и кнопка подтверждения, пользователю нужно добавить три текстовых поля, после этого пользователю нужно нажать кнопку подтверждения .... но в зависимости от другого порядка выбора, результат будет другим, например: A> B> C, я покажу красный. Когда пользователь выбирает в этом порядке: B> A> C покажу зеленый. Когда пользователь выбирает в этом порядке: C> B> А я покажу цвет синий ....

на основе другого порядка выбора пользователя, он будет показывать другой цвет .... Но вопрос в том, когда я добавляю все больше и больше текстового поля, как я могу реализовать эту логику? Во-первых, я создаю массив, когда пользователь выбирает одно текстовое поле, я сохраняю идентификатор текстового поля в массиве, когда пользователь выбирает второе, я сохраняю в массиве, пока пользователь не нажмет подтверждение, я прочитал массив обратно отобразить цвет .... Но я думаю, что это станет очень большим и грязным, когда будет добавлено все больше и больше текстовых полей, какие-нибудь лучшие идеи? Спасибо.

1 Ответ

2 голосов
/ 16 мая 2011

Это что-то вроде хака, но я бы хотел сохранить выборки в строку, к которой добавляется каждый раз (начиная с пустой строки, конечно), обрезая до крайних правых символов x. Затем вы можете сделать простой оператор switch / case, чтобы определить цвет. Например (фрагменты C #, вроде):

string selectStr = string.Empty;

void Select(string btn) {
  selectStr += btn;
  selectStr = selectStr.Remove(0, btn.Length - 3);
}

void Confirm() {
  switch (selectStr) {
    case "ABC" : /* make red */ break;
    case "BAC" : /* make green */ break;
    // etc.
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...