wpf binging бросает аргумент nullexception - PullRequest
0 голосов
/ 06 июля 2011

Как вы справляетесь, когда редактор (xaml / design) в Visual Studio выдает аргумент nulllexception, «значение не может быть нулевым»?

Я читаю некоторые значения из базы данных, используя структуру сущностей, и сохраняю их вНаблюдаемая коллекция, так что я могу связать их с XAML.Логично предположить, что в коллекции не может быть никаких значений, поэтому исключение является правильным, верно?Даже если у меня есть значения в базе данных, исключение все равно выдается, потому что редактор (при просмотре в режиме конструктора) не запускает приложение для получения значений, что все еще нормально.

Когда я запускаю приложение, все работает нормально , но исключение очень раздражает.

Я также получаю сообщение об ошибке, используя try catch при чтении из базы данных, но только в редакторе (xaml), а не при запускеПриложение, которое говорит: «Указанное именованное соединение либо не найдено в конфигурации, не предназначено для использования с поставщиком EntityClient, либо недопустимо. Отслеживание стека возвращает меня в саму модель данных объекта. Я использую mysql в качестве бэкэнда.Это сообщение с ошибкой выдается каждый раз, когда я что-то набираю (символ) в xaml!

Все мои тесты юнитов и интеграционные тесты работают нормально.

Кстати, это нормально?

РЕДАКТИРОВАТЬ: если я добавляю инициализацию viewmodel в ресурсы приложения (в app.xaml.cs, но не в app.xaml), он видитмс на работу.Я не вижу ошибок, когда пишу код на xaml или когда переключаюсь на дизайн, чтобы посмотреть, как он выглядит.

Ответы [ 2 ]

1 голос
/ 06 июля 2011

Вы можете создать некоторые примеры данных для режима конструктора, чтобы вы могли видеть конструктор и писать код в xaml без каких-либо исключений конструктора.Для этого вам может понадобиться класс DesignerProperties (например, DesignerProperties.GetIsInDesignMode(this) и т. Д.).Я сталкивался с подобным увлечением XAML-дизайнером и решил использовать эту технику.Я бы рекомендовал прочитать это руководство для дальнейшей помощи.

0 голосов
/ 06 июля 2011

Вы можете отладить конструктор: -)

Для этого создайте точку останова в вашей модели (в начале)

Теперь в опциях проекта в разделе «Отладка» выберите «Начать с внешнего».Программа "и выберите devenv.exe

Теперь, когда вы запустите свой проект, появится новый экземпляр Visual Studio.Когда вы открываете свое окно в новом экземпляре Visual Studio, разрыв должен быть достигнут в первом экземпляре Visual Studio

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...