WPF デザイナーの DataTemplate.DataType はオブジェクト型にできません 質問する

WPF デザイナーの DataTemplate.DataType はオブジェクト型にできません 質問する

いくつかのカスタム ビューモデルにバインドしているツリー ビューがあります。ビューモデルは にありObservableCollection、 を継承しViewModelBaseますINotifyPropertyChanged

コンパイルして正常に実行しますが、デザイナーで次のエラーが発生します。

「DataTemplate.DataType はオブジェクト型にできません

パラメータ名: 値"

私のXAMLは次のとおりです:

<TreeView Grid.Row="1" ItemsSource="{Binding ResultsTree}" SelectedItemChanged="TreeView_OnSelectedItemChanged">
<TreeView.Resources>
    <HierarchicalDataTemplate DataType="{x:Type local:TreeViewItemViewModel}" ItemsSource="{Binding Path=Children}">
        <StackPanel Orientation="Horizontal">
            <CheckBox IsChecked="{Binding IsChecked}"/>
            <TextBlock Text="{Binding Text}"/>
        </StackPanel>
    </HierarchicalDataTemplate>
    
    
    <DataTemplate DataType="{x:Type local:CorrectionAndFreqViewModel}">
        <StackPanel Orientation="Horizontal" ToolTip="{Binding AmbientText}">
            <Rectangle Width="20" Height="5" Fill="{Binding LineColor, Converter={StaticResource ColorToSolidColorBrushValueConverter}}"></Rectangle>
            <CheckBox IsChecked="{Binding IsChecked}"/>
            <TextBlock Text="{Binding Text}"/>
        </StackPanel>
    </DataTemplate>
</TreeView.Resources>
</TreeView>

プロパティ ウィンドウにはオブジェクトであるとも表示されますが、その理由はわかりません。

ここに画像の説明を入力してください

何か案は?

ベストアンサー1

このWPFデザイナーのバグは、DataTemplateにax:Keyを追加することで解決できました。

<ResourceDictionary>
    <DataTemplate x:Key="ThisKeySolvesDesignersNullRef" 
                  DataType="viewmodels:MyViewModel">
        <views:MyView/>
    </DataTemplate>
</ResourceDictionary> 

私は何ヶ月も探していました。なぜなら、それは最終的にさまざまなプロジェクトに現れ、時には明確な理由もなく現れたり消えたりしたからです。SOの役に立つ答え

おすすめ記事