单击项目时,会打开一个详细信息视图控制器,如果用户单击保存,则该控制器会调用一些 Web 服务来保存数据(这很好用)。我遇到的问题是当用户单击返回以返回列表时保存数据后,列表项(即,如果名称已更新)未更新。因此,也许用户更改了名称,因此应该更新之前的列表,我想更新该值,而不必进行另一个 Web 服务调用来重新填充。
当视图出现时我正在打电话this.ReloadData()
,但这似乎永远不会更新列表名称。我检查了workouts
哪个是对象列表,并且它已被详细控制器修改,但是重新加载数据似乎没有做任何事情。
如果另一个控制器修改了对象列表,如何刷新数据。
public override void ViewWillAppear (bool animated)
{
InvokeOnMainThread (delegate {
this.ReloadData();
}); // call reload on main thread
base.ViewWillAppear (animated);
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
workouts = manager.GetWorkouts(Helpers.User.Auth);
var sections = new Section();
var root = new RootElement("Workouts"){sections};
foreach (var wo in workouts) {
var tempwo = wo;
var wodetail = new RootElement(wo.Name, delegate {
var W = new WorkoutViewModel(tempwo);
var p = new WorkoutDetailController(W, tempwo);
return p;
});
sections.Add (wodetail);
}
Root = root;
}