2014-09-24 54 views
0

我正在使用此示例:http://www.arcgis.com/home/item.html?id=ef6a80c07fb84f84a5fe5192221f582c 特別針對使用Silverlight API的「GraphicsDataSourcesDemo」。 它允許加載具有經緯度座標的csv文件,這些座標在地圖上顯示爲點。在我自己的應用程序中,我成功實現了有關顯示點的部分,但是我遇到了Clear按鈕(未在所包含的示例代碼中實現)的問題。由於INotifyCollectionChangedStreamReader被使用,如標準方法:NotifyCollectionChangedEventHandler - 如何清除集合

private void GPSClearButton_Click(object sender, RoutedEventArgs e) 
{ 
    GraphicsLayer graphicsLayer = Map.Layers["data"] as GraphicsLayer; 
    graphicsLayer.ClearGraphics();    
} 

不起作用。

我將不勝感激任何關於如何使顯示的點從我的地圖消失(在用戶通過點擊按鈕清除後決定)的建議。

回答

0

圖形元素僅表示數據項,所以要麼丟棄數據項(這是我從「Clear」操作中理解的),要麼隱藏所顯示的數據項,並且稍後才能夠再次'展示'他們。只有後者才能在View/GraphicsLayer中解決。前者意味着必須「清除」數據項目列表,即座標,並且(如果使用正確)從View到DataContext的綁定將確保所有相應的視覺元素從UI中移除。

所以,你需要這樣的事情:

public class CoordinateCollectionViewmodel 
{ 
    public ICommand Clear { get; set; } // setup to call Coordinates.Clear() 
    public ObservableCollection Coordinates { get; set; } 
} 
+0

我從來沒有與觀察集合工作過,所以我不知道在哪裏以及如何連接一個代碼,您提出的。你能給我更詳細的答案嗎? – 2014-09-29 19:37:11