Замена наклеек c# wpf - PullRequest
       0

Замена наклеек c# wpf

0 голосов
/ 20 апреля 2020

создал спортивную таблицу, которая показывает различную статистику, отсортированную по одному свойству. При сортировке для другого свойства я создал совершенно новые метки, которые просто помещаются поверх старых вместо того, чтобы заменять их.

Это запускается при нажатии кнопки:

private void Points_Order(object sender, RoutedEventArgs e)
{
    List<Team> leagueTeams = new List<Team>();
    using (StreamReader sr = new StreamReader("TXT1.txt"))
    {
        using (JsonReader jr = new JsonTextReader(sr))
        {
            JsonSerializer js = new JsonSerializer();
            leagueTeams = js.Deserialize<List<Team>>(jr);
        }
    }

    List<Team> sortedList = leagueTeams.OrderByDescending(o => o.points).ToList(); //orders the keagueTeams list by points and stores in a new list using linq
    List<Label> TeamLabels = new List<Label>(); //makes list of labels that show the teams
    List<string> Names = new List<string>(); //Creates a list for the names 

    List<Label> gamesPlayedLabels = new List<Label>();
    List<int> GamesPlayed = new List<int>();

    foreach (var properties in sortedList)
    {
        Names.Add(properties.name);//adds the name of each object into the Names list
        GamesPlayed.Add(properties.gamesPlayed);
    }

    for (int i = 0; i < 20; i++)
    {
        string nameLab = Names[i];
        TeamLabels.Add(new Label { Height = 100, Width = 100, Content = nameLab }); //sets position of the name labels
        Canvas.SetLeft(TeamLabels[i], 0);
        Canvas.SetTop(TeamLabels[i], (i * 19) + 19);
        canvas1.Children.Add(TeamLabels[i]);

        string played = Convert.ToString(GamesPlayed[i]);
        gamesPlayedLabels.Add(new Label { Height = 100, Width = 100, Content = played });
        Canvas.SetLeft(gamesPlayedLabels[i], 112);
        Canvas.SetTop(gamesPlayedLabels[i], (i * 19) + 19);
        canvas1.Children.Add(gamesPlayedLabels[i]);
    }
}

Когда нажата вторая кнопка, точно такой же код запускается, но кроме

List<Team> sortedList = leagueTeams.OrderByDescending(o => o.points).ToList()

это

List<Team> sortedList = leagueTeams.OrderBy(o => o.name).ToList();

, поэтому вопрос в том, можете ли вы заменить существующие метки, чтобы таблица могла быть отсортирована?

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