Я приговариваю к роману, но я хотел объяснить столько, сколько я сделал до сих пор.Как удалить предметы из коллекции Observable
В моем текущем проекте у меня есть приложение, которое использует услугу, предоставляющую коллекцию как <List>
. Из-за того, как я использую эти данные в приложении, мне пришлось преобразовать эти данные в наблюдаемую коллекцию. Это было сделано для того, чтобы при выборе и перемещении данных об обновлениях пользовательского интерфейса приложения обновлялись с использованием INotifyPropertyChanged и INotifyCollectionChanged.
У меня теперь есть вызов, который связан с наблюдаемой коллекцией в списке. У меня есть шаблон данных, который выделяет элементы коллекции. Этот шаблон данных содержит кнопку, которая должна позволить пользователю щелкнуть по кнопке для каждого элемента, чтобы удалить их из коллекции. В этом случае используется список, в котором выбрано выбранное имя из сетки. После того как пользователь выбрал имена из gridview, они сохраняются (в пределах наблюдаемой коллекции как очередь) и отображаются в пользовательском интерфейсе в элементе управления списком, который показывает все выбранные имена. Мне нужно предоставить пользователю возможность удалять эти имена в любом выбранном порядке.
Из того, что я читал, нет средств для перечисления/индексации наблюдаемой коллекции. В таких ситуациях вы должны использовать List или Array. Однако для того, чтобы элементы обновлялись в виде списка, они должны быть в коллекции Observable. Из того, что я прочитал, кажется, что при запуске события мне нужно преобразовать наблюдаемую коллекцию в массив и затем оценить массив для определения индекса, а затем удалить запись соответственно?
Я думаю, что, возможно, я не согласен с этим, поскольку мне кажется, что я над разработкой этой проблемы? Вышеупомянутый сценарий не кажется правильным, потому что я упал так, как будто я делаю много конвертирования в коллекции и из них, чтобы просто удалить запись? Кто-нибудь знает об эффективном способе удаления записей из коллекции (в любом выбранном порядке), когда коллекция отображается как элемент управления в списке? Мне удалось удалить последнюю запись, добавленную в коллекцию с помощью RemoveAt(), однако я не успел случайно удалить записи.
Запоздалая мысль: Часть этой проблемы может быть связана с тем, что у меня есть кнопка, вставленная в DataTemplate (пункт управления), в результате чего элемент фактически не выбран до того, как событие вызывается по кнопке мероприятие? Извините за бессвязное отношение к этому, но у меня была голова в этом часами и сделал небольшой прогресс. Любые советы или идеи будут оценены!
Этот вопрос слишком велик. Вы сделаете это справедливо, если сможете решить реальный вопрос. И FYI, я понятия не имею, где вы читаете, вы не можете индексировать или перечислять ObservableCollection. Конечно, вы можете использовать все методы 'ICollection' (IndexOf, индексный указатель и т. Д.). –
Спасибо Адаму и да простите за длинный роман. Я попытался дать слишком подробный описательный вопрос, и это оказалось более запутанным, чем сжатым. Еще раз спасибо за советы по ICollection – rlcrews