你好,我是xamarin表格的新手,我做了一些搜索,但没有找到多少。 我有一个页面上显示的项目列表,我想在用户从选择器中选择时刷新该列表。 例如,当用户从选择器中选择每月时,必须刷新列表并显示本月的项目我已经有3个函数functionDaily,functionMonthly,functionYearly返回ObservableCollection但我不知道如何刷新列表时如果有人可以帮助我,用户可以从选择器中选择谢谢
答案 0 :(得分:3)
有两种方法可以做到:
选择器有一个名为SelectedIndexChanged
的事件,告诉您何时更改选择器的元素,当它引发时,您可以更新列表的来源,例如:
picker.SelectedIndexChanged += (sender, args) =>
{
if (!picker.SelectedIndex == -1)
{
if(picker[picker.SelectedIndex] == "By Day")
myList.ItemSource= functionDaily();
else if(picker[picker.SelectedIndex] == "By Month")
myList.ItemSource= functionMonthly();
else if(picker[picker.SelectedIndex] == "By Year")
myList.ItemSource= functionYearly();
}
};
几乎相同,只是不使用SelectedIndexChanged
方法,您可以使用属性SelectedItem
,创建属性并绑定到它,当属性更改时更新您的ItemSource(您的ItemSource)应该绑定到ViewModel上的List。
答案 1 :(得分:0)
我找到了答案,谢谢你们,如果有人在这里遇到同样的问题就是解决方案
void Handle_SelectedIndexChanged(object sender, System.EventArgs e)
{
picker = sender as Picker;
if(picker.SelectedItem.Equals("Monthly")){
ListActions.ItemsSource = am.GetMonthlyActionsByUserAndDate(CurrentUser.GetUser, DateTime.Now);
}
if(picker.SelectedItem.Equals("Yearly")){
ListActions.ItemsSource = am.GetYearlyActionsByUserAndDate(CurrentUser.GetUser, DateTime.Now);
}
if (picker.SelectedItem.Equals("Daily"))
{
ListActions.ItemsSource = am.GetDailyActionsByUserAndDate(CurrentUser.GetUser, DateTime.Now);
}
}