Проблема в том, что вы не знаете, какой код вызывает исключение.
WPF ужасен в отношении исключений, особенно в конструкторах. Фреймворк настаивает на том, чтобы перехватывать и повторно выдавать новое исключение, обычно несколько раз, и трудно найти исходную трассировку стека. Я обнаружил, что самый простой способ отследить такого рода ошибки - сказать Visual Studio прекратить работу, как только будет сгенерировано исключение, вместо того, чтобы ждать, пока WPF не перезапустит его пару раз и затруднит копание деталей. вне.
У меня нет Visual Studio 2010 передо мной, но вот как это сделать в VS2008 - 2010, вероятно, похоже:
- Перейти в меню «Отладка»> «Исключения ...»
- Рядом с «Общими исключениями языка среды выполнения» установите флажок в столбце «Брошенный»
Затем снова отладьте ваше приложение. Он остановится на линии, которая на самом деле вызывает проблему, и вам будет намного легче увидеть, что происходит. И если вы все еще не уверены, почему возникает исключение, вы сможете опубликовать пример кода.