как отображать контент в виде списка - PullRequest
0 голосов
/ 18 ноября 2011

Я пытаюсь отобразить группы (#) и студентов, которые находятся в этой группе.У меня есть два списка просмотра на странице (wpf).В первом окне списка отображается группа №.И во втором окне списка отображаются имя и фамилия группы, которую я выбрал в первом списке.Я использую observableCollection и привязку через xaml.Кто-нибудь может сказать мне, как я могу отобразить студентов во 2-ом окне списка в зависимости от группы #, которую я выбрал в первом списке просмотра?

Например: Listview (группа #) box1: содержит номера групп 1-20

Окно списка (имена) box2: содержит имя и фамилию группы

Так что, если я выберу группу номер 1 (item1) в окне списка 1, то в окне списка 2 должны отобразиться имя и фамилия, которыеВ этой группе #

Любая помощь или совет с благодарностью.:)

       <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>

1 Ответ

2 голосов
/ 18 ноября 2011

Я полагаю, что у вас есть Объект Group и Объект Student

Итак, у вашего первого ListView есть ObservableCollection<Groups>, и у каждой группы есть список студентов ObservableColection<Student>, поэтому в Xaml вы можете связывать и писать таким образом

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

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

Это тебе поможет ...;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...