|
C# и ObservableCollection
|
|||
---|---|---|---|
#18+
Коллеги, подскажите, фишка то в чём … Суть: 1. Выборку из базы данных храню в ObservableCollection (сущности). 2. Сиё просматриваю в DataGrid, здесь же и редактирую 3. Код: Код: 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.
Так как написано, работает штатно. Но если снять комментарии и закомментировать строку xrow = oc_Entity[i];, то iRow = oc_Entity.IndexOf(xrow); получает значение -1. Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2018, 12:07 |
|
C# и ObservableCollection
|
|||
---|---|---|---|
#18+
ВМоисеев, документацию почитайте, там рассказано: https://msdn.microsoft.com/ru-ru/library/ms132410(v=vs.110).aspx Используется компаратор по умолчанию, что не в курсе о том, что надо сравнивать так как Вы ожидаете. По pk? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2018, 12:23 |
|
C# и ObservableCollection
|
|||
---|---|---|---|
#18+
>skyANA, сегодня, 12:23 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1296213&msg=21497317][21497317] >Используется компаратор по умолчанию… Не понял. Думал, что при поиске сравниваются все поля сущностей по значениям, а похоже по ссылкам. Но тогда это не правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2018, 12:59 |
|
C# и ObservableCollection
|
|||
---|---|---|---|
#18+
ВМоисеев, что Вы не поняли? Как работает метод IndexOf? Там же всё расписано. Последовательно перебираются элементы коллекции и сравниваются с переданным объектом до первого совпадения. Для проверки используется компаратор по умолчанию. Вообщем в Вашем случае в итоге вызовется метод Object.Equals , что для ссылочных типов проверяет равенство ссылок. Если хотите иначе, то переопределите его в своём классе и сравнивайте "все поля сущностей по значениям". ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2018, 14:41 |
|
C# и ObservableCollection
|
|||
---|---|---|---|
#18+
>skyANA, сегодня, 14:41 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1296213&msg=21497496][21497496] >… что для ссылочных типов проверяет равенство ссылок. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2018, 15:37 |
|
C# и ObservableCollection
|
|||
---|---|---|---|
#18+
ВМоисеевДумал, что при поиске сравниваются все поля сущностей по значениям, а похоже по ссылкам. Но тогда это не правильно. Сравнение по значениям полей делается только в случае структур. У ссылочных типов по умолчанию проверка на равенство делается через сравнение ссылок. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2018, 06:01 |
|
|
start [/forum/topic.php?fid=20&fpage=30&tid=1399330]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
76ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 178ms |
0 / 0 |