윈도우 8 스토어 앱입니다. 이 프로젝트에서. 다른 페이지로 데이터를 보내야합니다. 계획은 MainPage.xaml에 ItemGridView가 있고, 뉴스 이미지를 클릭하고, 그 뉴스의 기사 ID를 다음 페이지로 보내야하며 그 ID로 기사를 만들어야합니다.ItemGridView ItemClick Windows 스토어 애플 리케이션
나는이 Windows phone 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)
{
}
}
덕분에 비주얼 스튜디오에서 아래를 참조 LayoutAwarePage의 OnNavigatedTo 메서드에 호출을 추가 한 작업을 시작할 것입니다 희망, 그것은 ID를 가져옵니다,하지만 내가 말할 때 "값은 null이 될 수 없다."라고 말합니다. 매개 변수 이름 : key "를 탐색하고"frameState [_pageKey] = pageState; "를 탐색합니다. 다음 페이지의 코드가 원인입니까? –
@ KuthayGümüş 두 페이지의 코드를 공유 할 수 있습니까? 이것처럼 판단하기 어려운 종류가 – Manvik
내가 편집 한 질문입니다. –