我正在为Windows 8开发应用程序,并且正在使用Hubs和HubSections。
我要做的是根据我获取的JSON创建多个HubSections。
我遇到的问题是,当我尝试设置新的HubSection ContentTemplate时,程序崩溃指向global::System.Diagnostics.Debugger.Break();
HubSection hs = new HubSection();
hs.ContentTemplate = this.Resources["canteenSectionDataTemplate"] as DataTemplate;
问题是,如果我将hs.ContentTemplate设置为已存在的HubSection的ContentTemplate,它可以正常工作,所以我认为问题与未加载的模板有关吗?
答案 0 :(得分:1)
这不会解决您的问题,但值得注意的是,由于多种原因,这样做是相当糟糕的做法:
HubSection hs = new HubSection();
hs.ContentTemplate = this.Resources["canteenSectionDataTemplate"] as DataTemplate;
使用as
关键字时,应该始终检查null
(除非您毫无疑问地知道它永远不会是null
,在这种情况下,您可以施展价值):
HubSection hs = new HubSection();
DataTemplate canteenSectionDataTemplate = this.Resources["canteenSectionDataTemplate"]
as DataTemplate;
if (canteenSectionDataTemplate != null)
hs.ContentTemplate = canteenSectionDataTemplate;
除了处理null
错误之外,此代码还可让您检查canteenSectionDataTemplate DataTemplate
是否 null
。
关于您的问题,canteenSectionDataTemplate DataTemplate
是否等于null
?如果是的话,这个代码从哪里调用?您可能需要推迟它才能使其正常工作。