Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “显示”;根“;树视图中的节点_C#_Wpf_Xaml_Treeview - Fatal编程技术网

C# “显示”;根“;树视图中的节点

C# “显示”;根“;树视图中的节点,c#,wpf,xaml,treeview,C#,Wpf,Xaml,Treeview,如何在TreeView中显示“根目录” 是否需要为根目录创建特殊的HierarchycalDataTemplate 这是我的代码: <TreeView Margin="0,0,15,0" Name="treeView1" ItemsSource="{Binding Path=Children}"> <TreeView.Resources> <HierarchicalDataTemplate DataType="

如何在TreeView中显示“根目录”

是否需要为根目录创建特殊的HierarchycalDataTemplate

这是我的代码:

<TreeView Margin="0,0,15,0" Name="treeView1" ItemsSource="{Binding Path=Children}">           
  <TreeView.Resources>           
    <HierarchicalDataTemplate DataType="{x:Type local:Node}"
                              ItemsSource="{Binding Path=Children}">
      <Border BorderBrush="Black" BorderThickness="1">
        <StackPanel>
          <TextBlock Margin="10,0,0,0" Text="{Binding Data}"/>
        </StackPanel>
      </Border>
    </HierarchicalDataTemplate>
  </TreeView.Resources>
</TreeView>

Node node0=新节点(“根节点”);
节点1=新节点(“节点1-1”);
节点node12=新节点(“节点1-2”);
节点node21=新节点(“Node2-1”);
节点node22=新节点(“Node2-2”);
节点node31=新节点(“Node3-1”);
Node node9=新节点(“node9”);
node12.Children.Add(node21);
node12.Children.Add(node22);
node22.Children.Add(node31);
node1.Children.Add(node9);
node0.Children.Add(node1);
node0.Children.Add(node12);
treeView1.DataContext=node0;
公共类节点
{      
列出儿童名单;
公开儿童名单
{
获取{返回子项;}
设置{children=value;}
}       
字符串数据;
公共字符串数据
{
获取{返回数据;}
设置{data=value;}
}
公共节点()
{
children=新列表();
}
公共节点(字符串数据)
:此()
{
这个数据=数据;
}
}

如果您想要根目录,则需要指定一个
项目资源
,其中只有一个项目,即根节点,它必须是
IEnumerable
,节点本身不能是源

e、 g

treeView.ItemsSource=new[]{rootNode};

如果您想要根目录,则需要指定一个
项目资源
,其中只有一个项目,即根节点,它必须是
IEnumerable
,节点本身不能是源

e、 g

treeView.ItemsSource=new[]{rootNode};
使用转换器:

public class RootTreeviewConverter : IValueConverter
{
    public object Convert(object value, Type targetType, 
      object parameter, System.Globalization.CultureInfo culture)
    {
        if (value == null)
            return null;

        return new object[] { value };
    }

    public object ConvertBack(object value, Type targetType,
      object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
在XAML中:

<TreeView ItemsSource="{Binding Path=RootNode,Converter={StaticResource rootConv}}" />

使用转换器:

public class RootTreeviewConverter : IValueConverter
{
    public object Convert(object value, Type targetType, 
      object parameter, System.Globalization.CultureInfo culture)
    {
        if (value == null)
            return null;

        return new object[] { value };
    }

    public object ConvertBack(object value, Type targetType,
      object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
在XAML中:

<TreeView ItemsSource="{Binding Path=RootNode,Converter={StaticResource rootConv}}" />


我不明白,请指定一个只包含一项的ItemsSource?类似于:
treeView.ItemsSource=new List(){rootNode}我不明白,请指定一个只有一个项目的ItemsSource?类似于:
treeView.ItemsSource=new List(){rootNode}