1. C# / Говнокод #18356

    +145

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    protected virtual void OnDisconnected()
    {
    		DispatcherHelper.CheckBeginInvokeOnUI(() =>
    		{
    			...
    			Cameras.ToList().Clear();
    			Meltings.ToList().Clear();
    			Spans.ToList().Clear();
    			...
    		});
    }

    Очищаем коллекции с данными, привязанные на списковые контролы UI. Доступ к свойствам Cameras, Meltings, Spans только через IEnumerable<>. Как же их очистить?

    Запостил: elmanav, 18 Июня 2015

    Комментарии (6) RSS

    • А вдруг Clear() – это экстеншен метод с особой уличной магией логикой?
      Ответить
      • Тут скорее "магическая" реализация ToList() с преферансом и барышнями напрашивается :)
        Ответить
    • а вот в самом деле, как?
      в жабке вот у итератора есть метод remove(), а в шарпике?
      Ответить
      • > а вот в самом деле, как?

        Видимо, если свойства сделали IEnumerable, то хотят, чтобы они были доступны только для чтения. Правильный способ - сделать метод, который лезет в кишки (где уже известен тип контейнера) и очищает модель.
        Ответить
      • Ну да, определить, что за контейнер скрыт за IEnumerable и дернуть нужный метод нужного интерфейса контейнера.
        Ответить
      • В жабке remove() может возвращать "не поддерживается" и обычно это и делает.
        Ответить

    Добавить комментарий