我有通过点击打开的表格。在这里,我将用户数据添加到我的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) => {
//...
};
您需要更新集合并重新分配到ItemsSource
属性或使用数据绑定。
在后一种情况下,您将需要使用ObservableCollection<T>
。每当更新集合时,它都会相应地自动更新ListView
。