Как создать следующую и предыдущую кнопки для навигации по списку? - PullRequest
0 голосов
/ 11 апреля 2019

Я работаю над этим проектом и застрял. У меня есть форма, и у меня есть кнопка «Далее» и «Предыдущая»:

Form with the buttons and other functionality

В моем классе HouseList у меня есть этот код, и я хочу создать метод для получения следующего дома и другой метод для перехода в предыдущий дом. Я так долго пытался.

public HouseList()
{
    housesList = new List<House>();
    housesList.Add(new House()
    {
        Address = "35 Twin Oaks",
        City = "Glendale",
        Zip = "MDN6L3",
        AskingPrice = "328,743.00",
        PictureFile = "",
        AveragePrice = "490,747.80",
        Total = "2,453,739.00"
    });


    housesList.Add(new House()
    {
        Address = "35 Helen Drive",
        City = "OakDale",
        Zip = "G6L5M4",
        AskingPrice = "455,899.00",
        PictureFile = "",
        AveragePrice = "490,747.80",
        Total = "2,453,739,00"
    });

    housesList.Add(new House()
    {
        Address = "4 RiverBank Rd",
        City = "Brampton",
        Zip = "L9H4L2",
        AskingPrice = "699,999.00",
        PictureFile = "",
        AveragePrice = "490,747.80",
        Total = "2,453,739,00"
    });
}

public List<string> NextHouse()
{
    List<string> house = new List<string>();
    foreach (House h in housesList)
    {
        int index = 0;
        string conv = Convert.ToString(index);
        if (conv == house[1])
        {
            conv = house[1];
        }  
    }
    return house;
}

Ответы [ 2 ]

1 голос
/ 11 апреля 2019

Вам понадобится индекс, который сообщит вам, какой индекс является текущим.Индекс будет сравниваться с 0 для минимального индекса и houseList.Count-1 для максимального индекса.Имея это в виду, NextHouse и PreviousHouse должны возвращать House, а не List<House>.

public House NextHouse(){
    if(currentIndex + 1 != houseList.Count)
        currentIndex++;
    return houseList[currentIndex]
}

public House PreviousHouse(){
    if(currentIndex -1 >= 0)
        currentIndex--;
    return houseList[currentIndex];
}

Так что, если вы попросите следующий дом, когда вы уже находитесь в последнем доме в списке, он просто вернет последний дом.Если вы спросите предыдущий дом, когда вы находитесь на первом месте в списке, он вернет первый дом.

Для этого вам нужно будет инициализировать currentIndex как участника класса.

0 голосов
/ 11 апреля 2019

это для следующего элемента:

public List<House> housesList;
    int currentIndex = 0;

    public HouseList()
    {
        housesList = new List<House>();
        housesList.Add(new House()
        {
            Address = "35 Twin Oaks",
            City = "Glendale",
            Zip = "MDN6L3",
            AskingPrice = "328,743.00",
            PictureFile = "",
            AveragePrice = "490,747.80",
            Total = "2,453,739.00"
        });


        housesList.Add(new House()
        {
            Address = "35 Helen Drive",
            City = "OakDale",
            Zip = "G6L5M4",
            AskingPrice = "455,899.00",
            PictureFile = "",
            AveragePrice = "490,747.80",
            Total = "2,453,739,00"
        });

        housesList.Add(new House()
        {
            Address = "4 RiverBank Rd",
            City = "Brampton",
            Zip = "L9H4L2",
            AskingPrice = "699,999.00",
            PictureFile = "",
            AveragePrice = "490,747.80",
            Total = "2,453,739,00"
        });
    }

    public House NextHouse()
    {
        return housesList[(++currentIndex)%housesList.Count()];
    }

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

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