将列表添加到c#TreeView

将列表添加到c#TreeView,c#,wpf,treeview,C#,Wpf,Treeview,我有一个对象MyResult,它包含一个列表“list MyItems” 我想将此添加到c#WPF树视图中 这样做的最佳方式是什么 有关于这个的分步教程吗?因为我对所有的MVVM类都感到困惑 谢谢我假设列表中的对象有某种列表。 如果是这样的话,你应该考虑使用 下面是一个简单的例子。这是我在radtreeview中使用的一个片段,但它的工作原理应该是一样的 <!-- xaml --> <UserControl.Resources> <St

我有一个对象MyResult,它包含一个列表“list MyItems”

我想将此添加到c#WPF树视图中

这样做的最佳方式是什么

有关于这个的分步教程吗?因为我对所有的MVVM类都感到困惑


谢谢

我假设列表中的对象有某种列表。 如果是这样的话,你应该考虑使用

下面是一个简单的例子。这是我在radtreeview中使用的一个片段,但它的工作原理应该是一样的

 <!-- xaml -->
 <UserControl.Resources>

            <Style x:Key="_treeViewItemStyle" TargetType="telerik:RadTreeViewItem">
                <Setter Property="Visibility" Value="{Binding IsVisible, Converter={StaticResource VisibilityConverter}}" />
            <Setter Property="IsEnabled" Value="{Binding IsEnabled}"/>
            <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}"/>
            <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}"/>
            <Setter Property="HorizontalAlignment" Value="Left"/>
        </Style>

        <UI:HierarchicalDataTemplate x:Key="_treeViewTemplate" 
                          ItemsSource="{Binding NodeItems}"
                                          >

                <TextBlock Margin="3,0,0,0" Text="{Binding Header}">
                </TextBlock>

        </UI:HierarchicalDataTemplate>

    </UserControl.Resources>


    <telerik:RadTreeView x:Name="_pageNavigator" ItemsSource="{Binding InspNavList}" ItemDoubleClick="SendFocusToPage" SelectedItem="{Binding SelectedNavItem, Mode=TwoWay}" ItemTemplate="{StaticResource _treeViewTemplate}" ItemContainerStyle="{StaticResource _treeViewItemStyle}" />

我假设列表中的对象具有某种列表。 如果是这样的话,你应该考虑使用

下面是一个简单的例子。这是我在radtreeview中使用的一个片段,但它的工作原理应该是一样的

 <!-- xaml -->
 <UserControl.Resources>

            <Style x:Key="_treeViewItemStyle" TargetType="telerik:RadTreeViewItem">
                <Setter Property="Visibility" Value="{Binding IsVisible, Converter={StaticResource VisibilityConverter}}" />
            <Setter Property="IsEnabled" Value="{Binding IsEnabled}"/>
            <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}"/>
            <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}"/>
            <Setter Property="HorizontalAlignment" Value="Left"/>
        </Style>

        <UI:HierarchicalDataTemplate x:Key="_treeViewTemplate" 
                          ItemsSource="{Binding NodeItems}"
                                          >

                <TextBlock Margin="3,0,0,0" Text="{Binding Header}">
                </TextBlock>

        </UI:HierarchicalDataTemplate>

    </UserControl.Resources>


    <telerik:RadTreeView x:Name="_pageNavigator" ItemsSource="{Binding InspNavList}" ItemDoubleClick="SendFocusToPage" SelectedItem="{Binding SelectedNavItem, Mode=TwoWay}" ItemTemplate="{StaticResource _treeViewTemplate}" ItemContainerStyle="{StaticResource _treeViewItemStyle}" />

您可以使用

=我的列表

是一个如何使用MVVM的教程。

您可以使用

=我的列表


这是一个如何使用MVVM的教程。

没有最好的方法。事实上确实有,但是你需要更多关于系统本身和当前情况的数据(以及一些深刻的知识)来知道做事情的最佳方式。好吧,把它放在一边

如果要使用绑定,可以执行以下操作:

a。在页面/窗口/用户控件中,将DataContext属性设置为指向对象(MyResult)

b。在XAML文件中,使用以下代码段将treeView项绑定到该列表:

  <TreeView ItemsSource={Binding MyItems}>
     ....
  </TreeView>

....
c。享受结果

有几件事你需要考虑一下: 1.您应该为MyItems对象实现DataTemplate。默认实现只需要将ToString()结果放入树视图中。 2.如果希望使用层次数据(即具有级别的数据),则应实现HierarchycalDataTemplate并指出树中每个节点的子节点位置。 3.您应该考虑使用ExababeLeCon进行正确绑定——这样一来,列表中的每个项的添加/删除将调用UI中的更改。


这里有几个链接可以帮助您入门:,。

没有最好的方法。事实上确实有,但是你需要更多关于系统本身和当前情况的数据(以及一些深刻的知识)来知道做事情的最佳方式。好吧,把它放在一边

如果要使用绑定,可以执行以下操作:

a。在页面/窗口/用户控件中,将DataContext属性设置为指向对象(MyResult)

b。在XAML文件中,使用以下代码段将treeView项绑定到该列表:

  <TreeView ItemsSource={Binding MyItems}>
     ....
  </TreeView>

....
c。享受结果

有几件事你需要考虑一下: 1.您应该为MyItems对象实现DataTemplate。默认实现只需要将ToString()结果放入树视图中。 2.如果希望使用层次数据(即具有级别的数据),则应实现HierarchycalDataTemplate并指出树中每个节点的子节点位置。 3.您应该考虑使用ExababeLeCon进行正确绑定——这样一来,列表中的每个项的添加/删除将调用UI中的更改。


这里有几个链接可以帮助您开始:,。

我找到了这个,这是一个完美的开始:我找到了这个,这是一个完美的开始: