0

我正在为 Windows 8 开发应用程序,并且正在使用 Hubs 和 HubSections。我要做的是根据我获取的 JSON 创建多个 HubSection。我遇到的问题是,当我尝试设置新的 HubSection ContentTemplate 时,程序崩溃指向global::System.Diagnostics.Debugger.Break();

HubSection hs = new HubSection();
hs.ContentTemplate = this.Resources["canteenSectionDataTemplate"] as DataTemplate;

问题是,如果我将 hs.ContentTemplate 设置为已经存在的 HubSection 的 ContentTemplate,它工作正常,所以我认为问题与尚未加载的模板有关?

4

1 回答 1

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?如果是这样,这段代码是从哪里调用的?您可能需要推迟它以使其工作。

于 2013-11-14T16:51:22.480 回答