Вопрос

Программа "[3188] Sprudelsuche.WP.exe" завершила работу с кодом -1073741819 (0xc0000005) "Нарушение доступа".

Это последняя строка в выходных данных, перед этим я получаю

'Sprudelsuche.WP.exe' (CoreCLR:.):Загружено 'C:\windows\system32\en-US\mscorlib.debug.resources.dll'.Модуль был построен без символов.ОШИБКА [Калибровки.Micro.View]:Исключение System.NullReferenceException:Ссылка на объект не задана для экземпляра объекта.в Caliburn.Micro.View.SetContentPropertyCore (целевое местоположение объекта, вид объекта)

Эффект заключается в том, что приложение ненадолго показывает заставку, а затем сразу же закрывается.

Приложение, о котором идет речь, находится на GitHub по адресу https://github.com/christophwille/Sprudelsuche/blob/master/Source/Sprudelsuche.WP/App.xaml.cs - причина, по которой я начал пробовать DisplayRootView, заключается в том, что DisplayRootViewFor не работает с навигацией позже в приложении (MainViewModel / NavigateTo:Выходные данные показывают, что он активирует новую модель представления, но представление так и не появляется).

Я использую CM в приложении WP8 SL без каких-либо проблем.Однако это поставило меня в тупик, поскольку я не сильно отклонился от образцов CM в этом очень простом порту.(кстати, NavigateToViewModel демонстрирует ту же проблему)

Загрузочная Заметка:Я заметил интересный момент в исходном коде DisplayRootView - обработка фрейма после навигации по сравнению с DisplayRootViewFor.Кроме того, в Хабе привязка на основе конвенции у меня не работала.Я уверен, что делаю что-то не так...

Это было полезно?

Решение 2

При написании комментариев к ответу mvermef я начал пробовать копировать код в пустой проект / использовать другой вид для запуска.Поскольку это сработало нормально, мое замечание "привязка не работает" напомнило мне, что я перепробовал чертовски много разных подходов, чтобы заставить это работать, и, о чудо, один из них остался в исходном коде:

<Hub Header="spritpreise">
            <HubSection Header="SUCHE">
                <DataTemplate>
                    <Grid caliburn:View.Model="{Binding}">

Сбой AV был вызван последней строкой.Превращение его обратно в сетку без привязки CM-VM заставило приложение работать.Забавно, однако, что это приводит к сбою только View-first, а не ViewModel-first.

Другие советы

посмотрите на свою строку кода в PrepareViewFirst(Frame rootFrame)

у вас есть

 protected override void PrepareViewFirst(Frame rootFrame)
 {
   container.RegisterNavigationService(this.RootFrame);
 }

вероятно, так и должно быть

protected override void PrepareViewFirst(Frame rootFrame)
{
  container.RegisterNaviationService(rootFrame);
}

тогда

DisplayRootView<MainView>(); 

должно сработать просто отлично;

Редактировать:попробуйте переместить метод PrepareViewFirst() в нижнюю часть переопределения Configure.Существует 2 метода PrepareViewFirst(), один из которых параметризован, а другой нет...используйте метод без параметров в Configure(), закомментируйте вызов в OnLaunched();

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top