Xaml Windows Phone工具包映射错误“;在使用项目源之前,项目必须为空;

Xaml Windows Phone工具包映射错误“;在使用项目源之前,项目必须为空;,xaml,windows-phone-8,windows-phone-toolkit,Xaml,Windows Phone 8,Windows Phone Toolkit,我有一个WindowsXAML页面,其中包含一个映射,如下所示,来自使用viewmodels构造函数的codebehind。我想用指针显示地图中的多个位置,所以我使用的是Windows Phone toolkit <Controls:Map x:Name="AllyMap" Grid.Row="1" Center="{Binding GeoLocation}" ZoomLevel="12"> <toolkit:MapExtensions.Childre

我有一个WindowsXAML页面,其中包含一个映射,如下所示,来自使用viewmodels构造函数的codebehind。我想用指针显示地图中的多个位置,所以我使用的是Windows Phone toolkit

 <Controls:Map x:Name="AllyMap" Grid.Row="1" Center="{Binding GeoLocation}" ZoomLevel="12">
            <toolkit:MapExtensions.Children>
                <toolkit:MapItemsControl ItemsSource="{Binding MapList}">
                    <toolkit:MapItemsControl.ItemTemplate>
                        <DataTemplate>
                            <toolkit:Pushpin GeoCoordinate="{Binding GeoCoordinate}" Content="{Binding Content}"/>
                        </DataTemplate>
                    </toolkit:MapItemsControl.ItemTemplate>
                </toolkit:MapItemsControl>
            </toolkit:MapExtensions.Children>
        </Controls:Map>

现在我使用MapList Itemsource进行绑定,如下所示

atmLocationsMapView = new ATMLocationsMapViewModel();
            this.DataContext = atmLocationsMapView;
            ObservableCollection<DependencyObject> Mapchildren = MapExtensions.GetChildren(AllyMap);
            MapItemsControl AllyMapObject;
            AllyMapObject = null;
            AllyMapObject = Mapchildren.FirstOrDefault(x => x.GetType() == typeof(MapItemsControl)) as MapItemsControl;
            AllyMapObject.ItemsSource = atmLocationsMapView.MapList;
atmLocationsMapView=新的ATMLocationsMapViewModel();
this.DataContext=atmlocationsmappview;
ObservableCollection Mapchildren=MapExtensions.GetChildren(AllyMap);
MapItemsControl AllyMapObject;
AllyMapObject=null;
AllyMapObject=Mapchildren.FirstOrDefault(x=>x.GetType()==typeof(MapItemsControl))作为MapItemsControl;
AllyMapObject.ItemsSource=atmLocationsMapView.MapList;
它在第一次迭代中运行良好。我有一个功能可以在地图中过滤。当我对其进行过滤时,我在上面代码的最后一行中得到了“在使用Items Source之前,Items必须为空”


谁能帮我一下吗。

照上面说的做。。。在添加新对象之前清空贴图对象。我会缓存你所拥有的,过滤它,清除地图,然后重新设计它,你可以看到我已经把它设置为空。我还尝试了Item.Clear()。我看到的是,您将ItemsSource绑定到MapList,但在后端,您正在设置属性AllyMapObject=null。。。。