2011-08-27 93 views
0

即时通讯尝试绑定一个ItemsControl作为Repeater(Asp.net)在WPF中的静态树视图中使用。WPF中的Treeview

代码。

<Window x:Class="WpfApplication1.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <StackPanel> 
     <TreeView Margin="10,10,0,13" Name="TreeView1" HorizontalAlignment="Left" VerticalAlignment="Top" Width="194" Height="200" > 
      <TreeViewItem Header="Cold Drinks" IsExpanded="true"> 
       <TreeViewItem Header="Coke" IsExpanded="true"> 
        <ItemsControl Name="list" > 
         <ItemsControl.ItemTemplate> 
          <DataTemplate> 
           <TreeViewItem Header="{Binding}"></TreeViewItem> 
          </DataTemplate> 
         </ItemsControl.ItemTemplate> 
        </ItemsControl> 
       </TreeViewItem> 
       <TreeViewItem Header="Orange Juice"></TreeViewItem> 
      </TreeViewItem> 
     </TreeView> 
    </StackPanel> 
</Window> 

C#

list.ItemsSource = new List<string> { "Coke1", "Coke2", "Coke3" }; 

这导致3子作品,这似乎是我的基团,如果我选择一个我选择所有。

有人吗?

感谢, 马格努斯

回答

0

设置树型视图的的ItemsSource属性到列表中。这会让你得到你所期望的。
在下面的代码中,为了演示目的,我已将列表的名称设置为TreeViewItem(作为简短的黑客)。所以你的代码会将列表附加到TreeViewItem的ItemsSource。

<TreeViewItem Header="Cold Drinks" IsExpanded="true"> 
     <TreeViewItem Header="Coke" IsExpanded="true" Name="list">          
     </TreeViewItem> 
     <TreeViewItem Header="Orange Juice"> 
     </TreeViewItem> 
</TreeViewItem> 
+0

很酷的作品,谢谢。我可以将项目添加到从ItemSource属性生成的项目。 – hippie

+0

@hippie:一般来说不,如果我理解你的问题是正确的。使用ItemsSource或Items-Collection。但也许我错了。对于TreeView控件,我总是使用每个项目的ViewModel。这样做,这个控制是非常强大和易于使用。否则,它可能会很快变得非常复杂。希望这有助于... – HCL