Различают изменение пользовательского интерфейса на переменную от изменения кода - PullRequest
0 голосов
/ 23 мая 2010

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

Моя проблема заключается в том, что мне нужно вызвать какое-либо действие после того, как свойство изменило свое значение, но мне нужно это делать только тогда, когда изменение происходит из пользовательского интерфейса, потому что в противном случае я не хочу выполнять это действие. У меня возникают некоторые проблемы, потому что, например, когда флажок (двухсторонняя привязка) меняет состояние, мое свойство binded обновляется, а затем я использую отмеченные и непроверенные события для запуска этого действия. Проблема в том, что когда я изменяю свойство Код позади него также вызывает те события, и я не хочу этого. Сейчас я использую флаг, который разрешает или запрещает действия в обработчиках событий, но я не чувствую, что это хорошая идея.

Любые предложения или идеи? Я планирую использовать только одностороннюю привязку и контролировать все сам, используя команды.

1 Ответ

0 голосов
/ 23 мая 2010

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

Таким образом, если элемент управления изменяется так же, как модель, то изменение является внутренним, и подтверждение не требуется, но если элемент управления изменяется пользователем, то состояние элемента управления отличается от модели, и подтверждение может быть показано.

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