Не удается записать в ListView

314
13 февраля 2017, 13:22

Есть класс, содержащий строку String и целое число int

Дальше объявляю массив с этим классом, инициализирую.

Заполнение listview через обработчик событий Click по нажатию на bttn_Calculate

НО ПОЯВЛЯЕТСЯ ИСКЛЮЧЕНИЕ ПРИ ПЕРВОЙ ИТЕРАЦИИ ЦИКЛА. ЧТО ДЕЛАТЬ?

Answer 1

Какой-то странный у вас стиль, как будто вы только что из C++ в C# переехали.

ваши свойства можно было бы написать так

public string Name { get; set; }

ну или так (финансовые переменные надо хранить в decimal)

private double _Price;
public double Price
{
    get { return _Price; }
    set { _Price = value; }
}

Вместо массива лучше использовать List<TourCategory> TourCategories, еще лучше ObservableCollection<TourCategory> TourCategories, т.к. этот тип коллекции позволяет автоматически обновлять UI вслед за изменением состава коллекции.

После создания коллекции можно просто сделать так

this.listView.ItemsSource = TourCategories;
Answer 2

Вы добавляете в SubItems, а нужно в listView.Items. Удалите .SubItems из кода.

Answer 3

Что происходит в цикле: вы обращаетесь к коллекции Items по индексу (Items[i]). Но Items пустой, в нем не элементов. Вам надо добавить элемент в коллекцию, прежде чем к нему можно обращаться. Делается это методом Items.Add(...).

READ ALSO
Доступ к массиву из другого класса

Доступ к массиву из другого класса

Здравствуйте, только начала изучать C#, столкнулся с такой проблемой

451
Есть проблема с \t

Есть проблема с \t

Здравствуйте, уважаемыеС помощью ответов из предыдущего вопроса я немного усовершенствовал свой код

284
Xamarin Android совет новичку

Xamarin Android совет новичку

Вопросов несколько:

356