更新 List<T> 数据 Xamarin / C#

我有通过点击打开的表格。在这里,我将用户数据添加到我的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) => {

                //...

            };


拉莫斯之舞
浏览 278回答 1
1回答

慕码人8056858

您需要更新集合并重新分配给ItemsSource属性或使用数据绑定。在后一种情况下,您将需要使用ObservableCollection<T>.&nbsp;每当集合更新时,它会相应地自动更新ListView。
打开App,查看更多内容
随时随地看视频慕课网APP