Файл “Untar” на iPhone

Кажется, что эти INotifyCollectionChanged интерфейс допускает обновление, когда несколько объектов были добавлены, таким образом, я не уверен, почему ObservableCollection<T> не имеет AddRange. Вы могли сделать дополнительный метод для AddRange, но это вызовет событие для каждого объекта, который добавляется. Если это не приемлемо, необходимо быть в состоянии наследоваться от ObservableCollection<T> следующим образом:

public class MyObservableCollection<T> : ObservableCollection<T>
{
    // matching constructors ...

    bool isInAddRange = false;

    protected override void OnCollectionChanged(NotifyCollectionChangedEventArgs e)
    {
        // intercept this when it gets called inside the AddRange method.
        if (!isInAddRange) 
            base.OnCollectionChanged(e);
    }


    public void AddRange(IEnumerable<T> items)
    {
         isInAddRange = true;
         foreach (T item in items)
            Add(item);
         isInAddRange = false;

         var e = new NotifyCollectionChangedEventArgs(
             NotifyCollectionChangedAction.Add,
             items.ToList());
         base.OnCollectionChanged(e);
    }
}
11
задан nikz 28 November 2009 в 04:55
поделиться

1 ответ

Это сообщение в блоге должно помочь вам: http://blog.hawkey.org/?p=332

РЕДАКТИРОВАТЬ: Кэшированная версия Google той же страницы , которая фактически ссылается на сообщение форума здесь , которое ссылки на проект Google Code здесь , содержащий код, реализующий распаковку на iOS.

4
ответ дан 3 December 2019 в 10:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: