|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
Всем привет! В wpf новичок, кодил на Delphi :) Прошу помощи, не пойму поведения Visual Studio. Опишу всю свою движуху, по сколько не пойму где косяк. И так, решил не мелочиться и начать сразу с познания всех фишек идя от простого к более сложного.До чего дошел. Подключил Entity Framework. Scaffold-DbContext - сгенерил модели из существующей базы. Создал прослойку ViewModelBase, конкретные ViewModel наследуются от нее и в них вся движуха. В коде view-шек пустота, в xaml view-шек штатный datagrid. К примеру Binding - PropertiesView является ListCollectionView в соответствующей ViewModel Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Все шло хорошо, пока я не заполнил тестовыми данными 10 000+ строк. Все работает великолепно, скорость отличная, пока я не перезапустил Visual Studio (да, работаю в VS 2019, решил раз уж начинать так со свежачка )) может в ней что не так, но не знаю точно , в других пока не проверял) Так вот во первых, среда зачем то мне вытаскивает данные находясь в Disign Time, ну в общем в конструкторе , еще до запуска. Т.е. в datagrid при загрузке среды мне тянутся все эти 10к записей и среда намертво виснет. Ждал мин 10-15 терпение кончилось. При этом сам Exe работает отлично, спокойно эти 10к грузит. Удаляю эти 10к записей, перезапускаю среду, она начинает работать адекватно. Собственно вопрос, как запретить загружать эти данные в режиме разработки или что в обще не так, куда смотреть ) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 10:08 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
kill_zdm, Код: c# 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 10:20 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
vb_subkill_zdm, Код: c# 1. 2. 3.
Это я так понимаю для run-time? Сам исполняемый повторюсь, что в дэбаге , что в релизе работает отлично. Сама среда тупит. Работать не возможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 10:25 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
Снимаю вопрос. Полез в настройки - Инструменты базы данных -Параметры таблиц и запросов и снял галку с переопределить время ожидания там какое то и данные перестали грузиться в режиме разработки в конструкторе. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 10:31 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
kill_zdm, А хотя это не то, но каким то образом сначала помогло. Это не тот конструктор )) Запустил исполнение из среды и опять начало все загружаться в конструкторе XAML :( Как с этим бороться? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 11:34 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
Снять галочку с опции: Menu -> Tools -> Options... -> XAML Designer -> General -> Enable XAML Designer наслаждаться жизнью В VS 2019 XAML код можно менять прямо во время отладки приложения, да и месяца через 2. Сколько работаю, ниразу через дизайнер ничего в XAML коде не менял, в нём шевельнешь чего не так, весь макап поедете чёрт знает куда ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 14:00 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
Roman MejtesСнять галочку с опции: Menu -> Tools -> Options... -> XAML Designer -> General -> Enable XAML Designer наслаждаться жизнью В VS 2019 XAML код можно менять прямо во время отладки приложения, да и месяца через 2. Сколько работаю, ниразу через дизайнер ничего в XAML коде не менял, в нём шевельнешь чего не так, весь макап поедете чёрт знает куда До этого я то же дошел, но у меня как раз сейчас этап создания с нуля. И мне как раз код View не столько нужен, точнее совсем не нужен, по сколько все в прослойке ViewModel,а вот к XAML довольно часто пока приходится обращаться ...в поиске интерфейса и т.д.. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 15:09 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
Если нужно именно для представления получить признак, что оно в дизайн-моде, то вот Код: xml 1.
Код: xml 1.
(указание свойства Path обязательно, через конструктор не работает) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 18:16 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
Прошу прощения, может я не совсем еще владею терминами и не корректно задаю вопросы. До запуска еще сборки, до всех движений, просто запуск среды разработки. Она мне выводит во все мои xaml данные, я не знаю как это происходит. К примеру в Delphi такое, если компоненту отвечающему за соединение с БД в дизайнтайме установить connection= true, тогда я еще в режиме проектирования могу видеть данные, тут же все совсем не так, у меня нет компонент визуальных и коннект к контексту данных у меня происходит при запуске приложения или других движухах, но не пока я ни чего не делаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 18:31 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
Визуальность не при чем, оговорился, невизуального компонента коннекта, но сути не меняет ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 18:32 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
Shocker.Pro, Или если все же мы пончли друг друга, то пжл подскажите где сие прописывается ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 18:34 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
Судя по всему, ты задаешь модель представления как статический ресурс. Соответственно, когда дизайнер пытается отрендерить твое представление, он создает все ресурсы, в том числе и модель, которая лезет в базу. Соответственно, ты можешь это учитывать разными способами. Вся зависит от того, когда у тебя модель лезет в БД. Свойство, которое тебе нужно, я написал выше. Можешь использовать его хоть в XAML, хоть в модели представления ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 19:49 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
Shocker.Pro, еще плохо ориентируюсь, но вроде статики я не юзаю, рассудите и подскажите. К примеру, моя работа со справочником свойств. Разделил 1. Properties.xaml это моя вьюшка 2. PropertiesModel.cs - прослойка между моделью Properties.cs (сгенерирована EntityFrameWork) и вьюшкой Properties.xaml 3. Во вьюшке Properties.xaml объявляю датаконтекст к вьюмодель ... <UserControl.DataContext> <vm:PropertiesModel /> </UserControl.DataContext> ... и биндю <DataGrid ItemsSource="{Binding PropertiesView}" .... 4. PropertiesView в бинде это public ListCollectionView PropertiesView { get; } вроде ни каких статиков я не юзаю, что я делаю не так ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 20:00 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
в этой схеме уточню, Properties.cs ни как не относится к Properties.cs вьюшки Properties.XAML, у нее своя Properties.xamlcs. C именами возможно не совсем корректно поступил, но только разбираюсь во всей этой кухне ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 20:07 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
Shocker.Pro, куда мне его это свойство пихнуть? неймспейс прописал :) Но я ей богу не понимаю, я один чтоль такой? ни у кого нет 10к записей и они не лезут при загрузке студии? Вот мой тест xaml целиком Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 20:24 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
kill_zdm Код: xml 1.
вот эта строка создает экземпляр модели. В том числе и при открытии дизайнера ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 20:36 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
kill_zdmвроде ни каких статиков я не юзаюДа, в данном случае не статик, но ты же не привел код сразу, поэтому пришлось гадать ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 20:37 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
kill_zdmкуда мне его это свойство пихнуть?в данном случае, наверное, проще запретить вьюмодели лезть в БД, если IsInDesignMode kill_zdmни у кого нет 10к записей и они не лезут при загрузке студии?Обычно никто не грузит 10к записей в грид - это бессмылсенно. Для этого существует пейджинг, фильтры и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 20:39 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
Кроме того, у DataGridView есть виртуализация, и ее обязательно надо включить и по умолчанию она выключена. Иначе в рантайме тоже будет тормозить ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 20:41 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
Shocker.Pro, Огромное Вам человеческое спасибо!!! я серьезно без иронии. НО. IsInDesignMode , посмотрел на просторах инета, это мне надо реализовывать этож бред...т.е. скажем я собрался писать что либо, в базе уже есть кол-во записей больше 10к, я еще об этом не знал , реализовал вьюмодели и все упало. КРАСОТА!!!!!!!!!!!!!! в дэлфи у меня таких проблем не было, я контролировал, в режиме разработки, вскывать коннекшн или нет. На крайняк, если забыл False, то это только поменять True на False вне среды... Но все равно познавательно, везде есть свои камни, идем дальше. Еще раз спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 21:07 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
Shocker.Prokill_zdmкуда мне его это свойство пихнуть?в данном случае, наверное, проще запретить вьюмодели лезть в БД, если IsInDesignMode kill_zdmни у кого нет 10к записей и они не лезут при загрузке студии?Обычно никто не грузит 10к записей в грид - это бессмылсенно. Для этого существует пейджинг, фильтры и т.п. На счет ни кто не грузит это кстати то же вопрос, разные бывают случаи и я с ними встречался, где и более записей были востребованы, но повторюсь, падает не код, не исполняемый файл, он спокойно отображает эти 10к.. среда фризит мертво ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 21:09 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
kill_zdmв дэлфи у меня таких проблем не быловоспользуйся своим же советом kill_zdmбагаж обратной силы, от другого ЯП, привычки и осознание того, как это вроде должно выглядеть или где искать корни -не всегда совпадает с с# и wpf в частностии забудь про дельфи. Ты бы еще SQL-Сервер приплел. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 23:47 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
Shocker.Prokill_zdmв дэлфи у меня таких проблем не быловоспользуйся своим же советом kill_zdmбагаж обратной силы, от другого ЯП, привычки и осознание того, как это вроде должно выглядеть или где искать корни -не всегда совпадает с с# и wpf в частностии забудь про дельфи. Ты бы еще SQL-Сервер приплел. вот в данном ответе в обще ни чего не понял. Забудьте про дэлфи, я уже не там и меня сейчас интересуют проблемы студии. Дэлфи был для контекста и поддержки разговора, а главное, что бы оценить, что проблема именно в среде, по сколько в другоой, таких проблем нет. Повторюсь. Вопрос - я в среде VS - она мне пытается загрузить все данные в конструторе XAML и умирает при этом. Как от этого избавится. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 14:02 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
kill_zdm, не грузить ViewModel в XAML. Это происходит, вот по этой причине: Код: c# 1. 2. 3.
Попробуйте сделать вот так: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 16:01 |
|
Загрузка данных в disign-time
|
|||
---|---|---|---|
#18+
kill_zdmвот в данном ответе в обще ни чего не понял. Забудьте про дэлфи, я уже не там и меня сейчас интересуют проблемы студии. Дэлфи был для контекста и поддержки разговора, а главное, что бы оценить, что проблема именно в среде, по сколько в другоой, таких проблем нет. Повторюсь. Вопрос - я в среде VS - она мне пытается загрузить все данные в конструторе XAML и умирает при этом. Как от этого избавится.На вопрос, как от этого избавиться, я ответил выше и считал, что вопрос исчерпан, далее пошла философия о том, что не надо парадигмы одного фреймворка натягивать на другой. Роман предложил другой вариант, для меня это некоторая новость, и это, видимо, логично ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 19:15 |
|
|
start [/forum/topic.php?fid=21&msg=39807949&tid=1440333]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 252ms |
total: | 374ms |
0 / 0 |