Kann die Liste der Elemente in der GridView-Spalte nicht binden

Ich erstelle eine Anwendung, die dem Benutzer das Live-Ergebnis einer Spielserie anzeigt. Ich richte die Datenstruktur wie folgt ein:Countries->Leagues->Matches Insbesondere im ViewModel habe ich eine beobachtbare Ländersammlung wie folgt erstellt:

private ObservableCollection<Models.Country> _countries = new ObservableCollection<Models.Country>();

public ObservableCollection<Models.Country> Country
{
    get { return _countries; }
}

und das Modell:

public class Country
{
    public string Name { get; set; }
    public List<League> League { get; set; }
}

public class League
{
    public string Name { get; set; }
    public List<Event> Event { get; set; }
}

die Klasse Ereignis enthält die Eigenschaften jedes Ereignisses, insbesondere den Namen des Ereignisses, das Datum usw.

Ich werte diese Daten wie folgt aus:

Country country = new Country();
country.Name = "Italy";

League league = new League();
league.Name = "Serie A";
League league2 = new League();
league2.Name = "Serie B";

Event @event = new Event();
@event.MatchHome = "Inter";

Event event2 = new Event();
@event.MatchHome = "Milan";

league.Event = new List<Event>(); 
league2.Event = new List<Event>();

league.Event.Add(@event);
league2.Event.Add(event2);

country.League = new List<League>();

country.League.Add(league);
country.League.Add(league2);

lsVm.Country.Add(country); //lsVm contains the ViewModel

Wie Sie sehen können, erstelle ich ein Objekt mit dem Namencountry (Italien) enthält in diesem Fall zwei Ligen (Serie A) und (Serie B). Jede Liga enthält ein Spiel, in dem tatsächlich @ gespielt wirSerie A -> Inter undSerie B -> Milan

Ich füge der Liga zwei das Land und schließlich das Land zur beobachtbaren Sammlung im Ansichtsmodell hinzu. Bis hierher kein Problem. Das Problem ist in der XAML gekommen.

So habe ich all diese Dinge in GroupViews organisiert. Dazu verwende ich eine CollectionViewSource, insbesondere:

<CollectionViewSource Source="{Binding Country}" x:Key="GroupedItems">
       <CollectionViewSource.GroupDescriptions>
            <PropertyGroupDescription PropertyName="Name" />
            <PropertyGroupDescription PropertyName="League.Name" />
       </CollectionViewSource.GroupDescriptions>

Der obige Code befindet sich in my Window.Resources und teilt CollectionViewSource mit, dass die entsprechenden Ligen nach Ländernamen und Ligennamen sortiert werden sollen. Ich habe zwei ListView wie folgt:

<ListView ItemsSource="{Binding Source={StaticResource GroupedItems}}" Name="Playing">
                    <ListView.View>
                        <GridView>
                            <GridViewColumn Header="Date" Width="150" DisplayMemberBinding="{Binding Path = League.Event.MatchDate}"/>
                            <GridViewColumn Header="Minutes" Width="70" DisplayMemberBinding="{Binding Path = League.Event.MatchMinute}"/>
                            <GridViewColumn Header="Home" Width="150" DisplayMemberBinding="{Binding Path = League.Event.MatchHome}"/>
                            <GridViewColumn Header="Score" Width="100" DisplayMemberBinding="{Binding Path = League.Event.MatchScore}"/>
                            <GridViewColumn Header="Away" Width="150" DisplayMemberBinding="{Binding Path = League.Event.MatchAway}"/>
                        </GridView>
                    </ListView.View>
<GroupStyle>
                            <GroupStyle.ContainerStyle>
                                <Style TargetType="{x:Type GroupItem}">
                                    <Setter Property="Template">
                                        <Setter.Value>
                                            <ControlTemplate>
                                                <Expander IsExpanded="True" Background="#4F4F4F" >
                                                    <Expander.Header>
                                                        <StackPanel Orientation="Horizontal" Height="22">
                                                            <TextBlock Text="{Binding Name}" FontWeight="Bold" Foreground="White" FontSize="22" VerticalAlignment="Bottom" />
                                                            <TextBlock Text="{Binding ItemCount}" FontSize="22" Foreground="Orange" FontWeight="Bold" FontStyle="Italic" Margin="10,0,0,0" VerticalAlignment="Bottom" />
                                                            <TextBlock Text=" Leagues" FontSize="22" Foreground="White" FontStyle="Italic" VerticalAlignment="Bottom" />
                                                        </StackPanel>
                                                    </Expander.Header>
                                                    <ItemsPresenter />
                                                </Expander>
                                            </ControlTemplate>
                                        </Setter.Value>
                                    </Setter>
                                </Style>
                            </GroupStyle.ContainerStyle>
                        </GroupStyle>

Der GroupStyle enthält die Ligen, die jedes Match enthalten. Das Problem ist nun, dass ich keine Liga und kein Match sehen kann, da dieser Gegenstand in einer Liste enthalten ist. Also zum Anzeigen sollte ich in die XAML diesen Code schreiben:

<PropertyGroupDescription PropertyName="League[0].Name" /> 

dies behebt den Fehler des in GroupStyle und in der GridView angezeigten Liganamens:

<GridViewColumn Header="Casa" Width="150" DisplayMemberBinding="{Binding Path = League[0].Event[0].MatchHome}"/>

, aber dies zeigt natürlich nur das spezifische Element an, nicht die Liste der Elemente. Ich brauche Hilfe, um diese Situation zu beheben, ich kann es nicht herausfinden. Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage