嗨我ListView
有问题。问题是,当我将新元素添加到Colletion时,视图将不会刷新。
我创建了两个按钮左右按钮,用于更改日期。该函数将进行http调用,响应是项目列表。列表中的每个项目都放入与ListView
以这种方式创建ListView
var exercisesPlan = new ListView ();
exercisesPlan.ItemTemplate = new DataTemplate (() => {
ViewCell cell = new ViewCell ();
//template here
return cell;
});
exercisesPlan.SetBinding (ListView.ItemsSourceProperty, new Binding ("ExercisesWorkoutPlan", BindingMode.TwoWay));
exercisesPlan.SetBinding (ListView.SelectedItemProperty, new Binding ("DailyWorkoutPlan", BindingMode.TwoWay));
exercisesPlan.RowHeight = 65;
与这两个按钮相关的功能是
//Start spinner
try
{
DateTime dtNew = fdvm.CurrentDate.AddDays(1);
if ((dtNew.Date - DateTime.Now.Date).Days <= 7)
{
await fdvm.UpdateAll(dtNew);
}
}
//Catch Here
在UpdateAll里面我做了
ExercisesWorkoutPlan.Clear();
foreach(PlanWorkoutProfile wpPlan in wpPlans){
var response = //Make http call
DailyWorkout dpw = new DailyWorkout();
dpw.PlanId = wpPlan.PlanId;
dpw.WorkoutName = response.Result.WorkoutName;
dpw.Exercises = response.Result.Exercises;
ExercisesWorkoutPlan.Add(dpw);
}
如果我在UpdateAll
函数的末尾设置断点,Collection
ExercisesWorkoutPlan接缝就可以了,但视图将为空。它表示Clear
方法有效,但Add
没有
我尝试了什么
1)我试图评论我清除集合的行,并且当我通过点击左或右按钮更改日期时,我看到视图将使用上一个日期的元素进行更新
2)我试图设置null ItemsSource属性,然后在await fdvm.UpdateAll(dtNew);
3)我试图将fdvm.ExercisesWorkoutPlan直接分配给ItemsSource但仍无法正常工作