Я нахожусь в приложении для магазина Windows 8. В этом проекте. Мне нужно отправить данные на другую страницу. План состоит в том, что у меня есть ItemGridView в MainPage.xaml, я щелкаю изображение новостей, и мне нужно отправить идентификатор этой новости на следующую страницу и создать статью с этим идентификатором.ItemGridView ItemClick в приложении Windows Store
Я сделал это приложение для Windows 8 с этим;
private void MainLongListSelectorSelectionChanged(object sender, SelectionChangedEventArgs e)
{
NavigationService.Navigate(
new Uri(
"/DetailsPage.xaml?selectedIndex=" +
((MyWebApi.Headline) MainLongListSelector.SelectedItem).ARTICLEID, UriKind.Relative));
}
В приложении win store я стараюсь;
private void itemGridView_ItemClick(object sender, ItemClickEventArgs e)
{
this.Frame.Navigate(typeof (BasicPage1),
((MyWebApi.MainPageHeadline) itemGridView.SelectedItem).ARTICLEID);
}
И я также пробовал вот так;
private void itemGridView_ItemClick(object sender, ItemClickEventArgs e)
{
var articleid = ((MyWebApi.MainPageHeadline) itemGridView.SelectedItem).ARTICLEID;
this.Frame.Navigate(typeof (BasicPage1), articleid);
}
Но я получаю
"Ссылка на объект не указывает на экземпляр объекта."
в конце линии.
Я не мог получить значение ID с этим. Есть ли какое-нибудь другое предложение?
спасибо.
UPDATE:
Это MainPage.xaml.cs;
public sealed partial class MainPage : try012.Common.LayoutAwarePage
{
private string _json = "";
private MyWebApi.RootObject Headlines { get; set; }
public MainPage()
{
this.InitializeComponent();
}
protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
const string urlt = "MyWebApiURL";
var hWebRequestt = (HttpWebRequest)WebRequest.Create(urlt);
hWebRequestt.Method = "GET";
hWebRequestt.BeginGetResponse(MainLongListSelectorLoadCompletedt, hWebRequestt);
}
private void MainLongListSelectorLoadCompletedt(IAsyncResult ar)
{
var request = (HttpWebRequest)ar.AsyncState;
var response = (HttpWebResponse)request.EndGetResponse(ar);
using (var streamReader = new StreamReader(response.GetResponseStream()))
{
_json = streamReader.ReadToEnd();
Headlines = JsonConvert.DeserializeObject<MyWebApi.RootObject>(_json);
}
if (Headlines.MainPageHeadline.Count > 0)
Dispatcher.RunAsync(CoreDispatcherPriority.Normal,() =>
{
itemGridView.ItemsSource = Headlines.MainPageHeadline.ToList();
});
}
private void itemGridView_ItemClick(object sender, ItemClickEventArgs e)
{
this.Frame.Navigate(typeof(BasicPage1),((MyWebApi.MainPageHeadline)e.ClickedItem).ARTICLEID);
}
}
И это BasicPage1.xaml.cs;
public sealed partial class BasicPage1 : try012.Common.LayoutAwarePage
{
public BasicPage1()
{
this.InitializeComponent();
}
protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
}
protected override void SaveState(Dictionary<String, Object> pageState)
{
}
}
спасибо за answer.I смотрите ниже в визуальной студии, когда я отладки ниже, он получает идентификатор, но, когда я иду вперед, он говорит: «Значение не может быть пустым. Имя параметра: ключ« и перемещает »frameState [_pageKey] = pageState;" Это причина следующего кода cs страницы? Можете ли вы мне помочь? –
@ KuthayGümüş Вы можете поделиться кодом для обеих страниц. Его вроде трудно судить так: – Manvik
Я редактировал вопрос, проверьте его. –