0

TreeView コントロールにノードを表示していますが、データをジェネリックで正しく表示するのに問題があります。より具体的には、WPF がデータ テンプレートを見つけるのに問題があるようです。NodeViewModel`1x:Type が であると宣言されており、実際の型が であることが原因だと思いNodeViewModel< INode>ます。ただし、使用しようとすると、XAML はコンパイルされませんNodeViewModel< INode>

次のような HierachialDataTemplate があります。

<HierarchicalDataTemplate 
        ItemsSource="{Binding Path=Children}" 
        DataType="{x:Type viewModels:NodeViewModel`1}">
    <TextBlock Text="{Binding Path=Node.NodeDescription}" />                
</HierarchicalDataTemplate>

NodeViewModel は次のように宣言されています。

public class NodeViewModel<T> where T : INode
{
    public T Node { get {...} set {...} }
}

ノード インターフェイスは次のようになります。

public interface INode
{
    string NodeDescription { get; }
}
4

1 に答える 1