2017-01-17 2 views
2

У меня здесь ситуация, вызывается valueChanged, даже если я изменяю свойство bindable value внутри пользовательского элемента. Как отправить обновленное значение обратно в viewModel из настраиваемого элемента без запуска valueChanged для этого связанного значения.Обновление двусторонней привязки пользовательского элемента без запуска значенияЧанге

есть ли способ подавить это? или я должен использовать внутреннее отслеживание, если это вызвано из внутреннего кода или из представления?

+0

Если значение в пользовательском элементе изменяется, вы все еще хотите обновить переменную вид модели? – nicovank

+0

Позвольте мне прояснить это немного. Я хочу обновить viewModel независимо от значения, исходящего из viewModel. в этом случае это двоичное значение для наложения. если viewModel изменится на true, я покажу оверлей, если вы нажмете кнопку закрытия с наложения, мне нужно закрыть наложение, а также обновить значение false для viewModel, чтобы в следующий раз кто-то переключился ('toggle =! toggle '), он все равно откроет оверлей, в противном случае требуется двойное переключение. кнопка закрытия на оверлее запускает другое событие закрытия в valueChanged –

ответ

1

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

0

Как сказал Джереми, нет способа предотвратить вызов обработчика изменения связующего свойства. Однако вы можете прикреплять или запускать свой код только с помощью ввода формы, используя свойства change.delegate или keyup.delegate. Это позволит вам изолировать код события от изменений, связанных с свойствами привязки.

Вот GistRun, чтобы продемонстрировать это:

https://gist.run/?id=11cd1e90dd912f07a60afaedb9c2613b

 Смежные вопросы

  • Нет связанных вопросов^_^