Обновление списка <T>данных Xamarin / C # - PullRequest
0 голосов
/ 29 мая 2018

У меня есть форма, которая открывается по клику.Здесь я добавляю данные о пользователях на мою SelectMultipleBasePage

async void OnClick(object sender, EventArgs ea)
        {
ListofUsers = new ObservableCollection<Models.Users>();
var items = await App.Database.User.GetItemsAsync();

            foreach (var user in items)   
            {
                Settings.userList.Add(user);
            }
     multiPage = new SelectMultipleBasePage<Users>(items.OrderBy(x => x.Title).ToList())
{ Title = Users }
     await Navigation.PushAsync(multiPage);
        }

SelectMultipleBasePage страницу содержимого:

public class SelectMultipleBasePage<T> : ContentPage
        {

            public class WrappedSelection<T> : INotifyPropertyChanged
            {
                public T Item { get; set; }              
            }
            public class WrappedItemSelectionTemplate : ViewCell
            {
                public WrappedItemSelectionTemplate() : base()
                {
                   Label Title = new Label() 
                   //and other fields
                  View = grid;                   
                }
            }
            public List<WrappedSelection<T>> WrappedItems = new List<WrappedSelection<T>>();

А вот SelectMultipleBasePage с WrappedItems, который я пытаюсьобновить, чтобы получить новые данные.

 public SelectMultipleBasePage(List<T> items)
            {                    
                WrappedItems = items.Select(item => new WrappedSelection<T>() { Item = item, IsSelected = false }).ToList();
                ListView mainList = new ListView()
                {
                    ItemsSource = WrappedItems,
                    ItemTemplate = new DataTemplate(typeof(WrappedItemSelectionTemplate)),
                    IsPullToRefreshEnabled = true,
                };

Как правильно добавлять или удалять элементы на моей странице с помощью wrappeditems.Команды mainlist.Itemsource.Add или mainlist.Itemsource.Clear отсутствуют.Я пробовал разные способы, но безрезультатно.Надеюсь на некоторые советы.

 mainList.Refreshing += (sender, e) => {
                //...
            };

1 Ответ

0 голосов
/ 29 мая 2018

Вам необходимо обновить коллекцию и переназначить свойству ItemsSource или использовать привязку данных.

В последнем случае вы захотите использовать ObservableCollection<T>.Всякий раз, когда коллекция обновляется, она автоматически обновляет ListView соответственно.

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