2011-11-18 116 views
0

我想顯示組(#)和在該組中的學生。我在頁面上有兩個listview框(wpf)。第一個列表視圖框顯示組#。第二個列表視圖框顯示我在第一個列表視圖中選擇的組的名字和姓氏。我使用observableCollection並通過xaml進行綁定。任何人都可以告訴我,如何根據我在第一個列表視圖中選擇的組來顯示學生在第二個列表視圖框中?如何在列表視圖中顯示內容

例如: 列表視圖(組#)BOX1:包含組編號1-20

列表視圖(地名)BOX2:包含組名字和姓氏

所以,如果我選擇組號1(ITEM1)在列表視圖box1中,然後在列表視圖box2中,它應該顯示該組中的第一個和最後一個名稱#

任何幫助或建議,非常感謝。 :)

 <ListView HorizontalAlignment="Stretch" Margin="0,12" x:Name ="listViewGroups" ItemsSource="{Binding Groups}" DisplayMemberPath="bindMe" IsSynchronizedWithCurrentItem="{x:Null}" Grid.Column="1"> 
     <ListView.View> 
      <GridView> 
       <GridViewColumn DisplayMemberBinding="{Binding GroupNumber}" Width="40"> 
        <GridViewColumnHeader Tag="GroupNumber" Content="#" Click="SortClick" /> 
       </GridViewColumn> 
       <GridViewColumn DisplayMemberBinding="{Binding GroupLeader}" Width="120"> 
        <GridViewColumnHeader Tag="GroupLeader" Content="Group Leader" Click="SortClick" /> 
       </GridViewColumn> 
       <GridViewColumn DisplayMemberBinding="{Binding GroupSize}" Width="70"> 
        <GridViewColumnHeader Tag="GroupSize" Content="Group Size" Click="SortClick" /> 
       </GridViewColumn> 
      </GridView> 
     </ListView.View> 
    </ListView> 

      <Label Content="Leader" Height="28" Margin="12,12,0,0" Name="lblFirstName" Grid.Column="2" VerticalAlignment="Top" HorizontalAlignment="Left" /> 
      <TextBox Text="{Binding SelectedItem.GroupLeader, ElementName =listViewGroups}" Height="23" Margin="12,31,0,0" Name="txtFirstName" MaxWidth="160" Grid.Column="2" VerticalAlignment="Top" HorizontalAlignment="Left" Width="160" /> 
      <Label Content="Group Members" Height="28" HorizontalAlignment="Left" Margin="14,60,0,0" Name="label1" VerticalAlignment="Top" Grid.Column="2" /> 
      <ListView HorizontalAlignment="Stretch" Margin="12,80,188,12" x:Name ="listViewGroupMembers" ItemsSource="{Binding Groups}" IsSynchronizedWithCurrentItem="{x:Null}" VerticalAlignment="Stretch" Grid.Column="2"> 
       <ListView.View> 
        <GridView> 
         <GridViewColumn DisplayMemberBinding="{Binding path SelectedItem.FirstName, ElementName= listViewGroups}" Width="100"> 
          <GridViewColumnHeader Tag="Name" Content="First Name" Click="SortClick" /> 
         </GridViewColumn> 

    </Listview> 
+0

這可以幫助? http://stackoverflow.com/questions/1996728/wpf-listview-databinding-to-observablecollection –

回答

2

我Asumming你有一個對象Group和對象Student

所以,你的第一ListViewObservableCollection<Groups>,每個組都有學生ObservableColection<Student>的列表,以便在XAML可以綁定和寫這樣

<ListView Name="GroupList" ItemSource={Binding Path=GroupList}> 
</ListView> 

<ListView Name="StudentList" ItemSource={Binding Path=SelectedItem.StudentList,ElementName=GroupList}> 
</ListView> 

這個你幫助你...;)

+0

爲什麼selectedItem.StudentList?只是好奇 – TMan

+0

而我的Groups類有一個列表成員在其中allready我所需要的是一個for循環來獲取成員。 Idk如果這會讓事情變得不同。 – TMan

+0

@TMan SelectedItem.StudentList意味着綁定引擎知道SelectedItem是類型'Group',所以你想告訴綁定引擎你需要那個對象的Sepcific屬性....並且對於你的第二個評論我從來沒有真正理解過什麼你試圖告訴.....上述答案應該工作 – Ankesh

相關問題