2017-03-22 145 views
0

我忙於使用gridview作爲分類頁面的UWP應用程序。當點擊其中一個網格項時,我已經放置了一個OnClick偵聽器,並且它可以工作。結果是一個包含imageURL和imageText的對象。從對象獲取特定數據C#

這是問題開始的地方,我需要訪問該對象並檢索imagetext,我試圖使用各種方法轉換它,但似乎沒有任何工作。

這裏是點擊項目的輸出,這是正確的。 output of the clicked item

這是目前我的最新嘗試,它只是通過「這種類型的對象不能轉換」

private void CategoryItem_Click(object sender, ItemClickEventArgs e) 
     { 
      object output = e.ClickedItem; 
      //string[] arr = ((IEnumerable)e.ClickedItem).Cast<object>() 
           //.Select(x => x.ToString()) 
           //.ToArray(); 
     } 
+0

使用var而不是對象 –

回答

1

可以使用as operatorobjectWiin.MainPage.MyImage

private void CategoryItem_Click(object sender, ItemClickEventArgs e) 
{ 
    MyImage output = e.ClickedItem as MyImage; 
    if (output == null) return; // the clicked item was not of the expected type 
    string text = output.ImageText; 
    string url = output.ImageUrl; 
} 

您的調試器顯示object in e.ClickedItemis a MyImage實例,所以演員應該工作。


萬一MyImage類型是類型(struct),則操作者as將不起作用。你需要直接投則:

MyImage output = (MyImage)e.ClickedItem; 

但如果e.ClickedItem包含不同類型的實例這一投將拋出InvalidCastException。使用is之前可能會檢查類型:

if (!e.ClickedItem is MyImage) return;