我在Windows Phone 8.1中使用onNavigate方法,試圖傳遞我創建的導航對象列表。當我嘗試從e.parameters中檢索列表(似乎工作)時,我無法遍歷列表並將它們轉換回原始對象類型。它工作,如果我發送一個單一的對象,但不是一個列表。解決Windows Phone 8.1編譯錯誤:GetEnumerator
例如。
從主頁上的button_click事件我調用下面的代碼導航到page2並傳遞一個對象列表。
我有一個類定義如下。
class NavigationContext
{
public int ID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
爲了測試我創建了3個對象,並將其添加到列表如下
NavigationContext navobj = new NavigationContext(){ID = 77,Name = "DN", Description = "TD1"};
NavigationContext navobj2 = new NavigationContext(){ID = 22,Name = "JN",Description = "JD1"};
NavigationContext navobj3 = new NavigationContext(){ID = 22,Name = "CN",Description = "CN1"};
然後我創建列表如下
List<NavigationContext> navlist = new List<NavigationContext>(){navobj,navobj2,navobj3};
然後我撥打電話
Frame.Navigate(typeof(Page2), navlist);
如果我通過一個對象的代碼工作,並編譯和新的頁面導航也成功地* **如果我通過列表如上面我得到的方法的OnNavigatedTo在foreach迭代器下面的錯誤
**示例代碼下面*
string myfiller = "";
foreach (NavigationContext navobj in e.Parameter)
{
myfiller += navobj.ID.ToString() + " " + navobj.Name + " " + navobj.Description+ "\n";
}
我得到以下錯誤: foreach語句無法在類型 '對象',因爲變量操作「OBJE ct'不包含GetENumerator的公共定義。
我試圖找到方法將列表轉換回NavigationContext對象,但我認爲我做了一些愚蠢的事情,因爲我無法讓它工作。
有什麼建議嗎?
你的問題是正確的錯誤消息:'e.Parameter'是一個'對象',但你想迭代它,所以把它轉換爲迭代的東西。 – 2014-11-24 17:50:16
對確切的錯誤信息進行谷歌搜索會得到以下結果[無法對'對象'類型的變量進行操作,因爲'對象'不包含GetEnumerator的公共定義](https://www.google.com/webhp?的SourceID =鉻瞬間&離子= 1&espv = 2&即= UTF-8#Q = C%23%20cannot%20operate%20on%20variables%20of%20type%20%27object%27%20because%20%27object%27%20does%20not% 20contain%20a%20public%20definition%20for%20GetENumerator)顯示更多的努力,並在錯誤信息上進行搜索它會告訴你到底發生了什麼錯誤 – MethodMan 2014-11-24 17:52:22