Windows 10上的WinRTXAMLToolkit Treeview崩溃

时间:2015-08-01 07:27:03

标签: windows-runtime windows-store-apps winrt-xaml windows-10 winrt-xaml-toolkit

我最近将操作系统从Windows 8.1升级到Windows 10。我使用VS 2013和更新4。 我的应用程序使用XAMLToolkit中的treeview控件,它在Win 8.1环境中运行良好。但在Windows 10下,它给了我以下错误。 请帮忙。

这是我使用的XAMLToolkit版本: nuget.org/packages/winrtxamltoolkit.windows

异常消息:

  

System.Runtime.InteropServices.COMException:错误HRESULT已从调用COM组件返回E_FAIL。      在Windows.UI.Xaml.Controls.ItemsControl.get_ItemTemplate()      在WinRTXamlToolkit.Controls.HeaderedItemsControl.PrepareHeaderedItemsControlContainer(HeaderedItemsControl控件,对象项,ItemsControl parentItemsControl,样式parentItemContainerStyle)      在WinRTXamlToolkit.Controls.HeaderedItemsControl.PrepareHeaderedItemsControlContainerForItemOverride(DependencyObject element,O

堆栈跟踪:

  

在Windows.UI.Xaml.Controls.ItemsControl.get_ItemTemplate()      在WinRTXamlToolkit.Controls.HeaderedItemsControl.PrepareHeaderedItemsControlContainer(HeaderedItemsControl控件,对象项,ItemsControl parentItemsControl,样式parentItemContainerStyle)      在WinRTXamlToolkit.Controls.HeaderedItemsControl.PrepareHeaderedItemsControlContainerForItemOverride(DependencyObject元素,Object item,ItemsControl parent,Style parentItemContainerStyle)      在WinRTXamlToolkit.Controls.TreeView.PrepareContainerForItemOverride(DependencyObject元素,对象项)      在Windows.UI.Xaml.FrameworkElement.MeasureOverride(Size availableSize)

内部异常为空

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我所做的只是删除了treeview控件中的itemtemplate并在页面资源中单独添加,我将itemtemplate引用到我的treeview控件。它解决了我的问题。

<Page.Resources>

<DataTemplate x:Name="TreeViewItemTemplate">
<Grid>
<TextBlock Text="{Binding Name}" />
</Grid>

<XCDATA:DataTemplateExtensions.Hierarchy>
<XCDATA:HierarchicalDataTemplate ItemsSource="{Binding Items}" />
</XCDATA:DataTemplateExtensions.Hierarchy>

</DataTemplate>

</Page.Resources>

<XC:TreeView 
    ItemTemplate="{StaticResource TreeViewItemTemplate}"
    ItemsSource="{Binding ObjShopItems}">      
</XC:TreeView>

答案 1 :(得分:0)

似乎您在HierarchicalDataTemplate的XAML代码中使用了TreeView。用相应的C#代码替换XAML将有所帮助。我们可以在DataTemplateExtensions.Hierarchy的{​​{1}}事件中为代码隐藏设置Loaded附加属性,如下所示:

TreeView

在代码隐藏中:

<controls:TreeView x:Name="treeView"
                   Loaded="treeView_Loaded"
...