|
Динамически переназначить свойство TextBox
|
|||
---|---|---|---|
#18+
Добрый день! Подскажите пожалуйста как при помощи триггера, можно проделать тоже самое, но с TextBox? В примере указан TextBlock https://overcoder.net/q/632248/условное-связывание-текста-xaml ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2021, 13:54 |
|
Динамически переназначить свойство TextBox
|
|||
---|---|---|---|
#18+
у <TextBlock> есть свойство Inlines В котором можно описать TextBlock более сложно, нужно учитывать, что это Freezable объект и вроде он замораживается, но это не точно. Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2021, 16:15 |
|
Динамически переназначить свойство TextBox
|
|||
---|---|---|---|
#18+
Ну это с использованием TextBlock. А можно как проделать подмену с textbox? Мне нужно чтобы поле можно было редактировать Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Код: c# 1. 2. 3. 4. 5.
В зависимости от выбранного параметра IndexParam, изменялось нужное значение, через один TextBox ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2021, 17:06 |
|
Динамически переназначить свойство TextBox
|
|||
---|---|---|---|
#18+
RichTextBox работает на том же FlowDocument, разные поля можно поместить под разные спаны с форматированием, и немного разобраться с позиционированием как вариант можно делать несколько текстбоксов в 1 контроле ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2021, 19:21 |
|
Динамически переназначить свойство TextBox
|
|||
---|---|---|---|
#18+
Nechto, вариантов здесь больше 1. Самый простой - 2 текстбокса, привязанные соответственно к Value1 и Value2, и скрываемые/отображаемые в зависимости от IndexParam: Код: 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. 43. 44. 45.
Код: xml 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. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76.
для удобства здесь используется конвертер: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Если такой вариант никак не подходит, то способ 2: MultiBinding+IMultiValueConverter. Для Mode=OneWay это делается элементарно, в случае же TwoWay нам в методе ConvertBack нужно знать значение IndexParam, которое взять неоткуда. Можно сделать конвертер, который поддерживает биндинг: Код: 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.
и в разметке: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
- по моему скромному, излишне усложнено. Гораздо проще в модели завести свойство, возвращающее/устанавливающее Value1 или Value2 в зависимости от IndexParam: Код: 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.
и тогда в разметке будет просто Код: xml 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2021, 08:23 |
|
Динамически переназначить свойство TextBox
|
|||
---|---|---|---|
#18+
Nechto Ну это с использованием TextBlock. А можно как проделать подмену с textbox? Мне нужно чтобы поле можно было редактировать Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Код: c# 1. 2. 3. 4. 5.
В зависимости от выбранного параметра IndexParam, изменялось нужное значение, через один TextBox А что в этой разметке не работает? При условии наличии в Контексте Данных сущности Test, реализации в ней и во всех её мутабельных свойствах INPC и добавлении свойства IndexParam должно работать. Вы пробовали и у вас не получилось? Или вы показали код даже не проверив его работоспособность? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2021, 07:41 |
|
Динамически переназначить свойство TextBox
|
|||
---|---|---|---|
#18+
[quot Eld Hasp#22274449] Nechto Вы пробовали и у вас не получилось? Или вы показали код даже не проверив его работоспособность? Ну разумеется проверял, если я его написал ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2021, 10:27 |
|
Динамически переназначить свойство TextBox
|
|||
---|---|---|---|
#18+
Nechto Ну разумеется проверял, если я его написал Как-то не так проверял. Всё там прекрасно работает. Если было решено, что не работает непосредственно при наборе текста - так там UpdateSourceTrigger не указан, а по умолчанию он равен LostFocus, т.е. значения в истоник будут отправлены, когда фокус ввода будет из TextBox перемещен куда-то ещё. Чтобы работало сразу при наборе текста, в биндингах нужно указать UpdateSourceTrigger=PropertyChanged. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2021, 11:58 |
|
Динамически переназначить свойство TextBox
|
|||
---|---|---|---|
#18+
Сон Веры Павловны Nechto Ну разумеется проверял, если я его написал Как-то не так проверял. Всё там прекрасно работает. Если было решено, что не работает непосредственно при наборе текста - так там UpdateSourceTrigger не указан, а по умолчанию он равен LostFocus, т.е. значения в истоник будут отправлены, когда фокус ввода будет из TextBox перемещен куда-то ещё. Чтобы работало сразу при наборе текста, в биндингах нужно указать UpdateSourceTrigger=PropertyChanged. Да указывал UpdateSourceTrigger=PropertyChanged. Самое интересное что с TextBlock работает. Нужно посидеть разобраться может, я что-то не так сделал в общей форме. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2021, 15:37 |
|
|
start [/forum/topic.php?fid=21&msg=40040562&tid=1440255]: |
0ms |
get settings: |
8ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
32ms |
get topic data: |
4ms |
get forum data: |
1ms |
get page messages: |
187ms |
get tp. blocked users: |
1ms |
others: | 25ms |
total: | 265ms |
0 / 0 |