2012-04-03 33 views
0

我正在嘗試從一個數據庫中加載一張形狀座標表,用於在Silverlight bing地圖上繪圖,我感興趣的表結構是http://dl.dropbox.com/u/10440538/ADO.png嵌套的foreach循環和WCF RIA域服務

使用wcf ria服務我可以加載數據好,但我需要幫助我的代碼拉出最低級別的數據(座標),並將它們分爲集合。最終的結果應該是我有一個LocationCollection的集合,一個LocationCollection用於數據庫中的每個mapshape。

這是我loadoperation回調然後

void FarmsLoaded(LoadOperation<Farm> loadOp) { 

     LocationCollection lc = new LocationCollection(); 

     foreach (Farm f in loadOp.Entities) { 
      foreach (FarmLocation fl in f.FarmLocations) { 
       foreach (MapShape ms in fl.MapShapes) { 
        lc.Clear(); 
        foreach (MapPoint mp in ms.MapPoints) { 
         lc.Add(new Location(mp.Latitude, mp.Longitude)); 
        } 
        shapeList.Add(lc); //observablecollection of LocationCollections 
       } 
      } 
     } 
    } 

shapeList被綁定到一個圖層。不幸的是,當我運行這個時,只繪製了數據庫中的最後一個mapshape。我想我誤解了如何通過遍歷的foreach嵌套,所以我會很感激在啓發的任何努力正確使用嵌套的foreach在這種情況下,或任何其他建議,如果foreach是不合適的(LINQ?)

+0

當你逐步通過它時,shapeList是否保持所有適當的值?當lc.Clear()被擊中時它會丟失最後一個值嗎? – 2012-04-03 15:03:34

+0

清除功能是從shapelist中刪除它,如果我每次看起來工作正常時繼續製作新的LocationCollections。謝謝 – 2012-04-03 15:13:40

回答

0

我認爲問題與foreach循環無關,而是清除lc。既然你對每一個地圖都進行了分類,他們似乎也從shapelist中刪除了。

+0

是的,如果我將該lc.clear()行更改爲'LocationCollection lc = new LocationCollection();'那麼它的工作原理,我認爲我已經嘗試過...... – 2012-04-03 15:07:43