Layout cycle detected. Layout could not complete.

       如题,在点击地图标记时候,会腾出如题的错误。

       如下图:

                

        问题出现在我使用Esri的InfoWindow模板的时候。

        从提示信息中,可以看到跟Collection.ListDictionaryInternal有关。而InfoWindow当中,只有当赋值的时候,才会涉及到ListDictionary的问题。所以很有可能是赋值的过程出错了。通过调试分析发现,

        KeyPrjInfoWindow.Content = graphic.Attributes;

        从上面这一句当中可以看出,会出现问题,因为InfoWin的模板当中只涉及到两个字段“Name”“Content”,而Attributes当中有五个字段,反复的赋值之后,就会发生问题。

        解决方法是仅仅使用有两个字段的字典给窗口赋值:

            IDictionary<string, object> dictTemp = new Dictionary<string, object>();
            
            dictTemp.Add(new KeyValuePair<string,object>("Name",graphic.Attributes["Name"]));
            dictTemp.Add(new KeyValuePair<string, object>("Content", graphic.Attributes["Name"]));
            


            KeyPrjInfoWindow.Content = dictTemp;

        不过可笑的是问题还没有解决!求助大神!!!

        经过高人指点,得知是字段名称命名太过特殊,不应该选用Content作为字段名称,Name最好也别用。更改之后,问题解决

posted @ 2014-07-25 15:33  DowTowne  阅读(441)  评论(0)    收藏  举报