Как переопределить событие CollectionChanged в C #? - PullRequest
1 голос
/ 10 апреля 2011

Я использую VS2010 - WPF - C #

У меня есть просмотр списка, который берет свои элементы из источника, используя эту инструкцию:

this.listView1.ItemsSource = CollectionViewSource.GetDefaultView(getTicker());

проблема в том, что каждый раз, когда источник получаетобновлено, мой список не обновляется ??

Я знаю, что должен что-то сделать с событием OnCollectionChanged, но я не знаю, как это сделать

Пожалуйста, помогите мне стот .,.

Ответы [ 2 ]

1 голос
/ 10 апреля 2011

Что делает метод getTicker?Если каждый вызов может возвращать новую коллекцию, возможно, вы заменяете коллекцию вместо добавления / удаления элементов.Я видел это несколько раз ...

Убедитесь, что при добавлении новых элементов (или целой новой коллекции элементов): 1. Очистите коллекцию (возвращенную в getTicker), чтобы удалитьвсе элементы 2. Добавьте все новые элементы в коллекцию

Если вам действительно не нужен CollectionviewSource, просто привяжите ObservableCollection ...

0 голосов
/ 10 апреля 2011

Я не уверен, почему вы используете CollectionViewSource.GetDefaultView(getTicker());

Предполагая, что getTicker() возвращает список элементов, которые вы можете сделать

this.listView1.ItemsSource = getTicker();

Если вы хотите убедиться, чтоваш список обновляется, когда изменяется исходная коллекция, тогда вы должны использовать коллекцию, которая реализует интерфейс INotifyCollectionChanged, например, ObservableCollection делает это.Однако вы должны убедиться, что ваша коллекция обновляется в потоке пользовательского интерфейса.

Обновление : вот как вы можете использовать ObservableCollection:

var TickerData = new ObservableCollection<MyData>();
this.listView1.ItemsSource = TickerData;

ТогдаВы можете добавлять / удалять элементы в / из TickerData, и пользовательский интерфейс будет обновляться автоматически, потому что ObservableCollection реализует INotifyCollectionChanged, который предоставляет обработчик событий CollectionChanged, на который подписывается listview.

Я думаю, выВозможно, вы захотите взглянуть на некоторые учебники по WPF .

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