【发布时间】:2013-09-05 15:46:25
【问题描述】:
我有一个带有 MapsItemControl 的地图控件:
<maps:Map x:Name="MyMap">
<maptk:MapExtensions.Children>
<maptk:MapItemsControl>
<maptk:MapItemsControl.ItemTemplate>
<DataTemplate>
. . .
</DataTemplate>
</maptk:MapItemsControl.ItemTemplate>
</maptk:MapItemsControl>
</maptk:MapExtensions.Children>
</maps:Map>
我通过以下方式在代码中填充MapItemsControl:
var itemCollection = MapExtensions.GetChildren((Map)MyMap).OfType<MapItemsControl>().FirstOrDefault();
itemCollection.ItemsSource = myItemCollection;
第一次将项目添加到地图时,这可以正常工作。但是如果我想用一个新的 soruce 项目集合来更新它,我会在itemCollection.ItemsSource = myItemCollection; 行中收到以下错误:
在使用项目源之前项目必须为空
所以,我尝试在代码中添加一行,以便在再次设置源之前删除项目,但没有成功:
var itemCollection = MapExtensions.GetChildren((Map)MyMap).OfType<MapItemsControl>().FirstOrDefault();
itemCollection.Items.Clear();
itemCollection.ItemsSource = myItemCollection;
现在我在itemCollection.Items.Clear(); 行中得到以下异常:
集合处于不可写模式
如何更新MapItemsControl 中的项目?
【问题讨论】:
-
您是否在某个时候手动添加项目?通过使用
itemCollection.Add(...)?
标签: c# xaml map windows-phone-8