Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
updaite
14 / 14 / 8
Регистрация: 14.01.2013
Сообщений: 534
Записей в блоге: 2
Завершенные тесты: 5
1

Объясните как работает коллекция ObservableCollection

11.10.2014, 11:11. Просмотров 1927. Ответов 4
Метки нет (Все метки)

Здравствуйте, есть код.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class Class
{
    public int Name
    {
        get { return 1; }
    }
 
    public int Region
    {
        get { return 2; }
    }
}
public partial class MainWindow : Window
{
     ObservableCollection<Class> collection = new ObservableCollection<Class>();
     public MainWindow()
      {
         InitializeComponent();
      }
     private void Test(object sender, EventArgs e)
     {
         collection.Add(new Class());
     }
}
При вызове функции Test создается новый экземпляр класса Class и поля этого класса добавляются в коллекцию.

Если добавить экземпляр класса Class в коллекцию, то он зачтется как один элемент коллекции.
Мне не понятно следующие: Как обратится к элементу коллекции и изменить свойство которое находится в элементе коллекции?

То есть мы добавили в коллекцию два экземпляра класса, у класса есть поля Name, Region. Как мне изменить у первого элемента коллекции поля Name, Region?
Как осуществить поиск элементов коллекции по этим полям?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2014, 11:11
Ответы с готовыми решениями:

Объясните, как работает код
Добрый вечер. Код написан верно,помогите понять как она считает,отладку делала...

Объясните как работает XMLreader
есть строка с xml? нужно прочитать из неё все данные, прочитать желательно...

Ряд Фибоначчи. Объясните как можно популярнее как работает рекурсия
По возможности максимально подробно расскажите про рекурсию public int...

Объясните как работает код новичку
Привет. Объясните как работает код программы, и как работает unit-тест. Что...

Объясните как работает этот цикл
using System; class lol { public static void Main() { int...

4
meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
11.10.2014, 11:32 2
Лучший ответ Сообщение было отмечено updaite как решение

Решение

не понимаю зачем именно ObservableCollection о_О
а что обычный List<T> уже не канает?
C#
1
2
3
4
5
6
public class Class
{
    public int Name {get; set;}
 
    public int Region {get; set;}
}
Добавлено через 1 минуту
у вас классе нет set, его поля доступны только для чтения, присвоить значение не является возможным

Добавлено через 6 минут
C#
1
2
3
4
List<Class> ClassList = new List<Class>();
ClassList.Add(new Class { Name = "name", Region = "region"});
ClassList[0].Name = "newname";
ClassList[0].Region = "newregion";
Добавлено через 3 минуты
поиск объекта
C#
1
ClassList.Find(n => n.Name == "newname" && n.Region == "newregion");
1
updaite
14 / 14 / 8
Регистрация: 14.01.2013
Сообщений: 534
Записей в блоге: 2
Завершенные тесты: 5
11.10.2014, 12:02  [ТС] 3
meksik, ObservableCollection перекреплён к ListView,
C#
1
ListView1.ItemsSource = collection;
Поэтому и следует использовать ObservableCollection.

Добавлено через 20 минут
Ещё такой вопрос: Как заменить элемент в списке ObservableCollection, к примеру есть элемент класса в списке под номером 5, в место него нужно добавить новый класс. Как такое можно сделать?
0
meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
11.10.2014, 12:03 4
updaite,

C#
1
ClassList[5] = new Class { Name = "name", Region = "region"};
1
Casper-SC
Эксперт .NET
3618 / 1827 / 355
Регистрация: 27.03.2010
Сообщений: 5,136
Записей в блоге: 1
11.10.2014, 12:30 5
Цитата Сообщение от meksik Посмотреть сообщение
не понимаю зачем именно ObservableCollection о_О
а что обычный List<T> уже не канает?
Цитата Сообщение от updaite Посмотреть сообщение
Поэтому и следует использовать ObservableCollection.
ObservableCollection следует использовать, чтобы ListView мог узнавать, что коллекция обновилась, добавили там элемент, удалили, к примеру.
0
11.10.2014, 12:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2014, 12:30

Объясните как работает метод Any у String
Доброго времени суток. Ни как не могу понять как работает метод Any в классе...

Объясните, пожалуйста, как работает цикл?
private void button4_Click(object sender, RoutedEventArgs e) { ...

Объясните как работает данный код
Просьба объяснить как работает данный код: class Movie { public...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru