2014-09-24 55 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