2012-04-10 75 views
0

我有一個MyResult對象,它包含一個「List MyItems」列表。將列表添加到c#TreeView

我想添加到一個c#WPF TreeView。

這樣做的最佳方式是什麼?

有沒有一個一步一步的教程呢?因爲我越來越所有的MVVM類等混淆

感謝

回答

1

我假設在你的列表中選擇的對象具有某種名單。 如果這是caseyou應該看看使用hierarchicaldatatemplate

一個簡單的例子可能如下所示。這是來自我使用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}" /> 
1

您可以使用

treeview.ItemsSource = MYLIST。

Here是一個教程如何使用MVVM做到這一點。

+0

+1這工作。謝謝。 – Stef 2012-04-11 10:50:56

1

沒有最好的辦法做事情。呃,實際上有,但是你需要更多關於系統本身和當前情況的數據(以及一些深刻的知識)來了解做事的最佳方式。那麼,把它放在一邊。

如果您想使用綁定,你可以做到以下幾點:

一個。在你的頁面/窗口/用戶控件中設置DataContext屬性來指向你的對象(MyResult)。

b。在您的XAML文件中,使用以下片段將treeView項綁定到該列表:

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

c。享受結果。

有幾件事情需要考慮: 1.您應該爲MyItems對象實現DataTemplate。默認實現只需將ToString()結果放入樹視圖。 2.如果您想要使用分層數據(意思是具有層次的數據),您應該實現HierarchicalDataTemplate並指定樹中每個節點的子節點。 3.您應該考慮使用ObservableCollection進行正確的綁定 - 這樣,每次添加/刪除列表中的項目都會調用UI中的更改。

以下幾個鏈接可幫助您入門:firstsecond,third

+0

我發現這是完美的開始:http://stackoverflow.com/questions/6415037/populate-treeview-from-list-of-file-paths-in-wpf – Stef 2012-04-30 07:29:56