2016-05-23 5 views
1

Разрабатывал проект UWP с использованием Intense Templates (образец SplitView), затем переключился на Template10 (Hamburger). И, кажется, есть ошибка, когда я пытаюсь передать параметруUWP Template10 Frame.Navigate с параметрами вызывает ошибку

param is string with value something like this - (d5d05a3b-546a-4ca6-a345-74e333fa00fb) Frame.Navigate(typeof(EditPage),param);

Ошибку это что-то вроде этого: ErrorPicture И затем, если моя Редактировать страница не может получить право паров, Он пошлет пользователь обратно (Frame.GoBack()) , теперь я получаю ошибку как

An exception of type 'System.Runtime.InteropServices.COMException' occurred in App6.exe but was not handled in user code 
Additional information: Error HRESULT E_FAIL has been returned from a call to a COM component. 
+2

Привет и добро пожаловать в переполнение стека. Очень сложно отлаживать словесное описание вашего кода :) Можете ли вы, пожалуйста, отредактировать свой вопрос * и добавить соответствующие фрагменты кода, чтобы мы могли видеть, что у вас есть, и затем мы можем помочь вам отладить этот код. (не помещайте код в комментарии здесь, потому что форматирование ужасно) :) –

ответ

1

первопричины вашей проблемы, если бы я был догадаться (и на основе строки исключений) является то, что вы передаете на страницу сложного типа тх t не может быть сериализована. Причина, по которой Template 10 хочет сериализовать ваш параметр, позволяет восстановить состояние навигации после приостановки приложения. Я понимаю, что это неудобно, если вы ДОЛЖНЫ передать несериализуемый объект, и поэтому вы обнаружите, что BootStrapper.SessionState (словарь) позволяет хранить объекты любого типа, требуя, чтобы вы только передавали ключ на страницу, которая может использовать SessionState + этот ключ для извлечения объекта.

Это отличный образец, кстати, и, конечно же, не один уникальный для шаблона 10. Единственное, что я хотел бы добавить к этому, было бы предположить, что объект отсутствует в словаре и включает защитный код для обработки этого положение дел тоже. Причина в том, что эта ситуация может произойти, если ваше приложение приостановлено.

Надеюсь, это имеет смысл. И, не чувствуй себя плохо. Вы, конечно, не первый задаете этот вопрос.

var key = nameof(MyObject); 
SessionState.Add(key, MyObject); 
NavigationService.Navigate(typeof(Views.MainPage), key); 

 Смежные вопросы

  • Нет связанных вопросов^_^