|
refrash binding TextBox'a
|
|||
---|---|---|---|
#18+
пара отрывков из кода: Код: xml 1. 2. 3. 4.
биндинг текстбоксов: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Не буду вдаваться в бизнес логику. Просто спрошу.. Как при нажатии на кнопку сделать так, чтобы всегда данные с текстбокса считывались в сеттер ? у меня происходит так: заполнил текстбоксы, нажал кнопку, данные считались. Второй раз нажимаю - фигушки. не заходит. в отладчике смотрел!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2013, 13:08 |
|
refrash binding TextBox'a
|
|||
---|---|---|---|
#18+
Erik_Kartmann, Если честно, мне тоже интересно, почему у вас сеттер только раз отрабатывает. Но у вас нет воспроизводимого сэмпла, а ковыряться в чужом неполном коде никто не будет - кто знает что вы там ещё нагородили. Вот это что у вас? Код: c# 1.
Судя по имени, вы поле пытаетесь обновить. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2013, 21:03 |
|
refrash binding TextBox'a
|
|||
---|---|---|---|
#18+
enigmaticВот это что у вас? Это трюк типа вот такого . Достаточно удобная штука, позволяющая на compile-time контролировать корректность вызова PropertyChanged. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2013, 03:28 |
|
refrash binding TextBox'a
|
|||
---|---|---|---|
#18+
enigmaticВот это что у вас? Это трюк типа вот такого . Достаточно удобная штука, позволяющая на compile-time контролировать корректность вызова PropertyChanged. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2013, 03:30 |
|
refrash binding TextBox'a
|
|||
---|---|---|---|
#18+
btw, чтобы данные всегда и сразу попадали в сеттер - в биндинге помимо Path указать Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2013, 05:15 |
|
refrash binding TextBox'a
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, Я не про NotifyPropertyChanged через лямбду, а про то, что ТС нотифицирует об обновлении поля (судя по названию m_adr), а не свойства класса. А что касаемо UpdateSourceTrigger, то он как минимум по потере фокуса срабатывает, поэтому не в нем дело. А работает он гарантировано, судя по тому что ТС написал "нажал кнопку, данные считались". ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2013, 06:31 |
|
refrash binding TextBox'a
|
|||
---|---|---|---|
#18+
Может и не совсем оно. В любом случае, если данные не изменились, биндинг не будет передавать их из контрола в источник. Но это можно сделать самостоятельно: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2013, 07:27 |
|
refrash binding TextBox'a
|
|||
---|---|---|---|
#18+
enigmaticА что касаемо UpdateSourceTrigger, то он как минимум по потере фокуса срабатывает Да ну? Интересно, как же он у меня срабатывает при любом изменении в контроле и без потери фокуса? Ну, а если в контроле не было никаких изменений - то с чего здесь срабатывать биндингу? Как написано выше - только дергать вручную UpdateSource. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2013, 07:34 |
|
refrash binding TextBox'a
|
|||
---|---|---|---|
#18+
Сон Веры Павловныbtw, чтобы данные всегда и сразу попадали в сеттер - в биндинге помимо Path указать Код: c# 1.
есть такое. всё равно. в сеттер попадает только после редактирования. то есть нажмёшь пробел, удалишь - всё! значение передано. Но это не удобно ) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2013, 08:42 |
|
refrash binding TextBox'a
|
|||
---|---|---|---|
#18+
http://msdn.microsoft.com/ru-ru/library/system.windows.data.binding.updatesourcetrigger.aspx короче. Я так понял, что в mvvm всё может делаться в ксамле. Оказывается, не может. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2013, 08:46 |
|
refrash binding TextBox'a
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныenigmaticА что касаемо UpdateSourceTrigger, то он как минимум по потере фокуса срабатывает Да ну? Интересно, как же он у меня срабатывает при любом изменении в контроле и без потери фокуса?Я к тому, что если не указывать значение UpdateSourceTrigger, то он будет как минимум в значении LostFocus. Этого достаточно, если значение в текстбоксе меняется, поскольку после изменения значения в текстбоксе (но пока не в привязанном свойстве) обязательно будет LostFocus при нажатии на кнопку, и отработает сеттер, который уже положит значение в привязанное свойство. Сон Веры ПавловныНу, а если в контроле не было никаких изменений - то с чего здесь срабатывать биндингу? Как написано выше - только дергать вручную UpdateSource.А вот это да. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2013, 09:01 |
|
refrash binding TextBox'a
|
|||
---|---|---|---|
#18+
Erik_KartmannЯ так понял, что в mvvm всё может делаться в ксамле. Оказывается, не может.Есть ситуации, где нам нужны sender/eventargs в обработчике, потому что без них никак не обойтись, а через команды без приседаний эти данные не передать. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2013, 09:10 |
|
refrash binding TextBox'a
|
|||
---|---|---|---|
#18+
Erik_KartmannЯ так понял, что в mvvm всё может делаться в ксамле. Оказывается, не может.Чудо никто не обещал. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2013, 09:16 |
|
refrash binding TextBox'a
|
|||
---|---|---|---|
#18+
enigmaticErik_KartmannЯ так понял, что в mvvm всё может делаться в ксамле. Оказывается, не может.Есть ситуации, где нам нужны sender/eventargs в обработчике, потому что без них никак не обойтись, а через команды без приседаний эти данные не передать.RoutedEventArgs содержит sender. А способов без приседаний передать EventArgs в Command хватает. Но и codebehind никто не запрещал. Всё зависит от потребностей. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2013, 09:20 |
|
refrash binding TextBox'a
|
|||
---|---|---|---|
#18+
Erik_Kartmannесть такое. всё равно. в сеттер попадает только после редактирования. то есть нажмёшь пробел, удалишь - всё! значение передано. Но это не удобно )"Кто на ком стоял?" (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2013, 09:24 |
|
refrash binding TextBox'a
|
|||
---|---|---|---|
#18+
Алексей КА способов без приседаний передать EventArgs в Command хватает.Просветите :) Я как-то пользовался EventToCommand с PassEventArgsToCommand, но он не предназначен для передачи sender. А других способов передать аргументы обработчика в команду я не нашел. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2013, 09:29 |
|
refrash binding TextBox'a
|
|||
---|---|---|---|
#18+
enigmaticАлексей КА способов без приседаний передать EventArgs в Command хватает.Просветите :) Я как-то пользовался EventToCommand с PassEventArgsToCommand, но он не предназначен для передачи sender. А других способов передать аргументы обработчика в команду я не нашел.Пользуюсь этим: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2013, 09:34 |
|
refrash binding TextBox'a
|
|||
---|---|---|---|
#18+
Алексей К, А в случае сильверлайта этот вариант прокатит? В любом случае, как-нибудь попробую использовать. Спасибо :) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2013, 09:45 |
|
|
start [/forum/topic.php?fid=21&msg=38244710&tid=1441409]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 151ms |
0 / 0 |