2011-08-27 121 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