WinRTXAMLToolkit Treeview Crash on Window 10

I recently upgraded my OS to Windows 10 with Windows 8.1. I am using VS 2013 with Update 4. My application uses the treeview control from XAMLToolkit and works fine in Win 8.1 environment. But under Windows 10 it gives me the following error. Please, help.

This is the version of XAMLToolkit that I used: nuget.org/packages/winrtxamltoolkit.windows

Exception Message:

System.Runtime.InteropServices.COMException: HRESULT error E_FAIL was returned from a call to a COM component. in Windows.UI.Xaml.Controls.ItemsControl.get_ItemTemplate () in WinRTXamlToolkit.Controls.HeaderedItemsControl.PrepareHeaderedItemsControlContainer (HeaderedItemsControl control element object object, ItemsControl parentItemsControl element style parentItemContainerStyle) in WinRTXamlToolkit.Controls.HeaderedItemsControl.PrepareHeaderedItemsControlContainerForItemOverride (DependencyObject element, O

Stacktrace:

in Windows.UI.Xaml.Controls.ItemsControl.get_ItemTemplate () in WinRTXamlToolkit.Controls.HeaderedItemsControl.PrepareHeaderedItemsControlContainer (HeaderedItemsControl control element object object, ItemsControl parentItemsControl element style parentItemContainerStyle) in WinRTXamlToolkit.Controls.HeaderedItemsControl.PrepareHeaderedItemsControlContainerForItemOverride (DependencyObject element object Object, the parent itemControl, the parentItemContainerStyle style) in WinRTXamlToolkit.Controls.TreeView.PrepareContainerForItemOverride (DependencyObject element, object object) in Windows.UI.Xaml.FrameworkElement.MeasureOverride (Size availableSize)

Internal exception is null

+4
source share
2 answers

I ran into the same problem that I did, simply deleted the itemmemplate element inside the treeview control and added it separately to the page resource, and I applied the itemtemplate to the treeview control. he solved my problem.

<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
source

It seems that you are using the HierarchicalDataTemplate in your XAML code for TreeView . Replacing XAML with the appropriate C # code will help. We can set the attached property DataTemplateExtensions.Hierarchy in the code-at-end in the Loaded event for the TreeView , for example:

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

And in encoding:

 private void treeView_Loaded(object sender, RoutedEventArgs e) { //don't know why, but in Windows 10 if this code is as XAML, the app falls with a ComExcpetion //so the corresponding XAML should be commented out like this: //... //<controls:TreeView.ItemTemplate> // <DataTemplate> // <!-- <data:DataTemplateExtensions.Hierarchy> // <data:HierarchicalDataTemplate ItemsSource="{Binding Folders}" /> // </data:DataTemplateExtensions.Hierarchy> --> // <Grid> //... WinRTXamlToolkit.Controls.Data.DataTemplateExtensions.SetHierarchy(treeView.ItemTemplate, new WinRTXamlToolkit.Controls.Data.HierarchicalDataTemplate { ItemsSource = new Windows.UI.Xaml.Data.Binding { Path = new PropertyPath("Folders") } }); } 
0
source

All Articles