|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
В VM есть следующие свойства Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
В обычном режиме (IsEdit=false) в CurrentClient копируется значение SelectedClient. В окне к свойству Name свойства CurrentClient привязан TextBox следующим образом Код: xml 1. 2. 3. 4.
Если в режиме редактирования (IsEdit=true) CurrentClient в методе присваиваю другое значение и потом вносятся какие-либо изменения в TextBox'е, то все привязки в окне рушатся. Если привязать так Код: xml 1. 2. 3. 4.
То работает нормально, но так привязывать неудобно. У CurrentClient свойств и привязанных к ним элементов много. Удобнее установить общий DataContext в StackPanel. Чего я не догоняю? Если CurrentClient сделать свойством зависимостей это решит проблему? Или в в чём-то другом проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 14:56 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
Eld Haspто все привязки в окне рушатся.не смог разгадать смысл фразы ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 15:04 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
Shocker.ProEld Haspто все привязки в окне рушатся.не смог разгадать смысл фразыВ буквальном смысле. Даже привязки не связанные с CurrentClient перестают почему-то работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 15:17 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
Eld Haspпотом вносятся какие-либо изменения в TextBox'е,встречные? От кого? Я так понял, что поле чисто справочное и биндинг в одну сторону. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 15:18 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
Окно Код: 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.
ViewModel Код: 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. 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. 77. 78. 79. 80. 81. 82. 83.
Если войти в режим редактирования, и изменить поле в TextBox, то ни одна привязка после это не работает. Проект приложил целиком - на всякий случай. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 15:23 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
Petro123Eld Haspпотом вносятся какие-либо изменения в TextBox'е,встречные? От кого? Я так понял, что поле чисто справочное и биндинг в одну сторону. Реально несколько полей. В режиме редактирования связь от поля к VM тоже есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 15:25 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
Eld HaspДаже привязки не связанные с CurrentClient перестают почему-то работать.Пока я увидел, что перестает работать привязка к SelectedClient, остальные-то работают, какие привязки перестали еще работать? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 15:40 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
Shocker.ProEld HaspДаже привязки не связанные с CurrentClient перестают почему-то работать.Пока я увидел, что перестает работать привязка к SelectedClient, остальные-то работают, какие привязки перестали еще работать?там сейчас три привязки. TextBox к CurrentClient.Name, DataGdrid к SelectedClient, параметры в кнопке к CurrentClient. Остальные, извиняюсь, забыл убрать. Их хотел убрать из примера - забыл. Скинул с ними. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 15:49 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
90% виновата перегрузка эквивалентности для Client, в результате которой не порождаются изменения при операциях типа CurrentClient = SelectedClient - объекты по сути разные, но они эквивалентны. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 15:51 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
MessageBox в к команде кнопки сохранить должен выводить изменяемый экземпляр Client, а Выводит то с которого делалась копия. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 15:52 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
Shocker.Pro90% виновата перегрузка эквивалентности для Client, в результате которой не порождаются изменения при операциях типа CurrentClient = SelectedClient - объекты по сути разные, но они эквивалентны.ОК! Попробую сейчас это исправить. Результат отпишу. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 15:53 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
Eld Haspтам сейчас три привязки.если не заработает, то скрин и use case. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 16:19 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
Shocker.Pro90% виновата перегрузка эквивалентности для Client, в результате которой не порождаются изменения при операциях типа CurrentClient = SelectedClient - объекты по сути разные, но они эквивалентны.Действительно, для примера это решило все проблемы. Исправлю основной проект - тоже отпишу. Что-то я упустил такую особенность Equals. В XAML объекты на по адресу, а через этот метод идентифицируются? Надо перечитать... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 19:13 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
Eld HaspВ XAML объекты на по адресу, а через этот метод идентифицируются?Возможно, это особенность работы SelectedItem, ибо там коллекция, а какой-нибудь FirstOrDefault будет искать через Equals, я в общем, глубоко не стал копать. Так или иначе, с целью проверки измененных полей переопределять Equals я бы не стал, потому что это много на что влияет, в частности, как раз на Linq-операции. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 19:18 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
С другой стороны...Eld HaspВ XAML объекты на по адресу, а через этот метод идентифицируются? Надо перечитать...В учебниках я этого не встречал. Но для того, чтобы сгененировать событие изменения свойства зависимости, проверка, возможно, осуществляется через Equals, можно тупо глянуть в исходники. Отпишись по результатам ) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 19:21 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
Eld Hasp, Почему выделенный объект не сделать свойство через номер, индекс, айдишник? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 19:23 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
Petro123Eld Hasp, Почему выделенный объект не сделать свойство через номер, индекс, айдишник?А зачем его потом разыскивать опять в коллекции, если можно взять непосредственно из свойства? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 19:32 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
После исправления Equals основной проект тоже работает как надо. Спасибо за помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 19:49 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
Petro123Eld Hasp, Почему выделенный объект не сделать свойство через номер, индекс, айдишник?Shocker.ProPetro123Eld Hasp, Почему выделенный объект не сделать свойство через номер, индекс, айдишник?А зачем его потом разыскивать опять в коллекции, если можно взять непосредственно из свойства? Я не разыскивал его. У меня для редактирования создавалась копия объекта. А перед выходом из редактирования я проверял через Equals были или нет изменения, чтобы сохранить их. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 19:53 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
Shocker.ProEld HaspВ XAML объекты на по адресу, а через этот метод идентифицируются?Возможно, это особенность работы SelectedItem, ибо там коллекция, а какой-нибудь FirstOrDefault будет искать через Equals, я в общем, глубоко не стал копать. Так или иначе, с целью проверки измененных полей переопределять Equals я бы не стал, потому что это много на что влияет, в частности, как раз на Linq-операции.Но копия у меня даже не входила в коллекцию. Она у меня создавалась отдельно, только на время редактирования и после него должна была отправляться в мусор. Даже привязка параметра в команде кнопки уже возвращала не тот объект. В дебагере же все значения полей VM показывало верно. Влияло именно на привязки в XAML. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 20:22 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
Shocker.ProА зачем его потом разыскиватьэто взять из коллекции по индексу? Коллекция же рядом. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 20:25 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
Eld Haspперед выходом из редактирования я проверял через Equals были или нет изменения, чтобы сохранить их.если есть ORM, DAL то это там делается. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 20:28 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
Eld HaspА перед выходом из редактирования я проверял через Equals были или нет изменения,еще можно флаг bool поставить и взводить при любом редактировании. Кроме того, другой юзверь поменял, а этот сохраняет СТАРЫЙ объект. Что делаем? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 20:33 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
Petro123Eld HaspА перед выходом из редактирования я проверял через Equals были или нет изменения,еще можно флаг bool поставить и взводить при любом редактировании. Кроме того, другой юзверь поменял, а этот сохраняет СТАРЫЙ объект. Что делаем?Это учебный однопользовательский проект. Без БД. Данные из XML. Можно разные методы определения модификация создать. Но здесь было проще так. Но столкнулся с неожиданным (для меня) поведением привязок. Переделал. Сейчас работает. Но причину такой работы привязок так и не понял. Буду разбираться. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 20:45 |
|
DataContext биндинг.
|
|||
---|---|---|---|
#18+
Petro123Eld Haspперед выходом из редактирования я проверял через Equals были или нет изменения, чтобы сохранить их.если есть ORM, DAL то это там делается.Не совсем. В данном случае это не относится к данным. Это копия объекта выделенного в View, то есть уровень VM. А ORM, DAL - это уровень модели. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 20:49 |
|
|
start [/forum/search_topic.php?author=%D0%91%D0%B5%D0%B7+%D0%BF%D1%80%D0%BE%D0%BF%D0%B8%D1%81%D0%BA%D0%B8&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
85ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 1252ms |
total: | 1464ms |
0 / 0 |