Чтобы обеспечить предварительный просмотр пользовательского интерфейса, редактор XAML фактически выполняет кодирование вашего привязанного получателя в пределах VS2010. Если ваш метод получения зависит от других программных компонентов, которые неправильно инициализированы из-за того, что приложение на самом деле не запущено, ваш метод получения может вызвать исключение.
Обычно VS2010 показывает это исключение вместе со своей трассировкой стека в желтой строке заголовка над конструктором пользовательского интерфейса. Во многих случаях VS2010 кажется не в состоянии справиться с этим исключением, в результате чего вся среда IDE падает.
Мой подход в этих случаях заключается в том, чтобы окружить всю кодировку геттера (в вашем примере ResourceWrapper.ModuleStrings.Package_Name) с помощью try / catch и показать исключение через MessageBox.Show (). Таким образом, вы по крайней мере сможете увидеть первоначальную причину ошибки после восстановления.
(Существует также возможность отладки самой VS со вторым экземпляром IDE ...)
Затем, когда я обнаружил ошибку, в большинстве случаев это помогает исключить некоторое кодирование во время разработки (т. Е. При работе в редакторе XAML, а не в приложении)
// Detect if this coding is run by the IDE or within an actual application
bool inDesignMode = (bool) DesignerProperties.IsInDesignModeProperty.GetMetadata( typeof(DependencyObject) ).DefaultValue;
if(!inDesignMode)
{
// ... We are running as application ...
}
НТН