在我清除 Bing 地图的图钉并打开弹出窗口后,我的应用程序崩溃了。这是我在调试器中看到的:
文本块绝对不为空 - 它是在 XAML 中以声明方式定义的。
字符串列表 (CurrentlyMappedPhotosets) 不为空 - 如您所见,它包含一个字符串 / 计数为 1。
在尖叫声中看到之前的代码是:
int count = App.CurrentlyMappedPhotosets.Count;
什么可以在这里为空?
就在这发生之前,我调用了 ClearMap:
private void ClearMap()
{
var mapLayerChildren = from c in DataLayer.Children select c;
var kinderGarten = mapLayerChildren.ToArray();
for (int i = 0; i < kinderGarten.Count(); i++)
{
if (kinderGarten[i] is Pushpin)
{
DataLayer.Children.Remove(kinderGarten[i]);
}
}
CloseInfobox();
App.CurrentlyMappedPhotosets.Clear();
if (null != App.photosetLocationCollection)
{
App.photosetLocationCollection.Clear();
}
appbarbtnClearMap.IsEnabled = false;
UpdateGUI(false);
}
...调用 UpdateGUI():
private void UpdateGUI(bool resizeMap)
{
appbarbtnRenamePhotoset.IsEnabled = App.CurrentlyMappedPhotosets.Count > 0;
if (resizeMap)
{
ResizeMap();
}
}