4

最近、OS を Windows 8.1 から Windows 10 にアップグレードしました。私は更新 4 で VS 2013 を使用しています。私のアプリは XAMLToolkit の Treeview コントロールを使用しており、Windows 8.1 環境で完全に動作します。しかし、Windows 10 では、次のエラーが表示されます。助けてください。

これは私が使用した XAMLToolkit のバージョンです: nuget.org/packages/winrtxamltoolkit.windows

例外メッセージ:

System.Runtime.InteropServices.COMException: COM コンポーネントの呼び出しからエラー HRESULT E_FAIL が返されました。Windows.UI.Xaml.Controls.ItemsControl.get_ItemTemplate() で WinRTXamlToolkit.Controls.HeaderedItemsControl.PrepareHeaderedItemsControlContainer (HeaderedItemsControl コントロール、オブジェクト アイテム、ItemsControl 親ItemsControl、スタイル parentItemContainerStyle) で WinRTXamlToolkit.Controls.HeaderedItemsControl.PrepareHeaderedItemsControlContainerForItemOverride (DependencyObject 要素、O

スタックトレース:

Windows.UI.Xaml.Controls.ItemsControl.get_ItemTemplate() で WinRTXamlToolkit.Controls.HeaderedItemsControl.PrepareHeaderedItemsControlContainer (HeaderedItemsControl コントロール、オブジェクト アイテム、ItemsControl 親ItemsControl、スタイル parentItemContainerStyle) で WinRTXamlToolkit.Controls.HeaderedItemsControl.PrepareHeaderedItemsControlContainerForItemOverride (DependencyObject 要素、オブジェクト アイテム、 Windows.UI.Xaml.FrameworkElement.MeasureOverride(Size availableSize) の WinRTXamlToolkit.Controls.TreeView.PrepareContainerForItemOverride(DependencyObject 要素、オブジェクト アイテム) の ItemsControl 親、スタイルのparentItemContainerStyle)

内部例外が null です

4

2 に答える 2

0

HierarchicalDataTemplateの XAML コードでを使用しているようですTreeView。XAML を対応する C# コードに置き換えると役立ちます。次のように、イベントのDataTemplateExtensions.Hierarchyコード ビハインドで添付プロパティを設定できます。LoadedTreeView

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

コード ビハインドでは次のようになります。

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") }
                });
        }
于 2015-08-02T22:41:25.950 に答える