当我调试我的Silverlight应用程序并且我在内部使用列表时,我不能将鼠标悬停在列表上并查看列表中的项目。我只看到列表的RAW视图。
如果我想查看这些项目,我必须编写自己的代码,这是繁琐的。这对Silverlight来说是正常的吗?
在普通的Console / WPF / ...应用程序中调试时,我有正确的列表视图。
示例:Silverlight(e.Result
是Dictionary<DateTime, decimal>
):
silverlight http://i39.tinypic.com/sq5ydh.png(链接:click)
在第一个示例中查看没有'列表视图?
在这一篇中,非Silverlight:non silverlight http://i43.tinypic.com/2nhq4vt.png(链接:click)
系统是Windows 7 64位,包含Visual Studio 2010和Silverlight 4 SDK RC2。
答案 0 :(得分:1)
Silverlight的词典&lt;&gt; class具有[DebuggerTypeProxy]属性,但它在工具集的当前版本中不起作用。在this thread中也提到过。同样的建议,报告connect.microsoft.com上的错误,以便他们了解它,希望它将在工具的官方RTM版本中得到修复。
答案 1 :(得分:1)
有一种解决方法可以在调试器中转储字典的内容。
在项目中添加对linq dll的引用(例如System.Core)
将以下语句添加到源文件中:
使用System.Linq;
在观察窗口中,键入:
dic.Take(21)
然后展开“结果视图”组行。这应该为您提供熟悉的键值对列表。
[这个解决方法由rickpastoor在connect.microsoft.com上报告错误557741]
答案 2 :(得分:0)
alt text http://img169.imageshack.us/img169/3142/screen1fc.png
我尝试将Dictionary从WCF发送到Silverlight,我可以在调试器中看到数据。所以它也适合你。也许你的代码有什么意义?
您使用的是什么“日期”课程?请像我一样尝试DateTime。
Heres'我的服务器端代码:
public Dictionary<DateTime, decimal> GetDataUsingDataContract()
{
Dictionary<DateTime, decimal> x = new Dictionary<DateTime, decimal>();
x[DateTime.Now] = 2;
x[DateTime.Now.AddDays(2)] = 3;
return x;
}