Xamarin.ios Monotouch对话框-修改行详细信息后重新加载数据列表返回时不更新列表
单击一个项目时,会打开一个details视图控制器,如果用户单击save(保存),该控制器会进行一些webservice调用以保存数据(这很好)。我遇到的问题是,在保存数据后,当用户单击“上一步”返回列表时,列表项(即,如果名称已更新)不会更新。因此,也许用户更改了名称,因此应该更新前面的列表,我想更新该值,而无需再次调用webservice来重新填充 当视图出现时,我正在调用Xamarin.ios Monotouch对话框-修改行详细信息后重新加载数据列表返回时不更新列表,xamarin.ios,monotouch.dialog,Xamarin.ios,Monotouch.dialog,单击一个项目时,会打开一个details视图控制器,如果用户单击save(保存),该控制器会进行一些webservice调用以保存数据(这很好)。我遇到的问题是,在保存数据后,当用户单击“上一步”返回列表时,列表项(即,如果名称已更新)不会更新。因此,也许用户更改了名称,因此应该更新前面的列表,我想更新该值,而无需再次调用webservice来重新填充 当视图出现时,我正在调用this.ReloadData(),但这似乎从未更新列表名称。我已经检查了训练,这是一个对象列表,细节控制器已经对其进行
this.ReloadData()
,但这似乎从未更新列表名称。我已经检查了训练
,这是一个对象列表,细节控制器已经对其进行了修改,但是重新加载数据似乎没有任何作用
如果另一个控制器修改了对象列表,如何刷新数据
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;
}
当您从自定义对象中指定元素的值时,如下所示:
AccountDetailsSection = new Section ("Details"){
new StringElement ("Code:", _Account.Code),
new StringElement ("Name:", _Account.Name) };
您将获得所需的结果,但元素将丢失指向对象属性的指针。因此,如果稍后更改属性的值,例如:
_Account.Code = "xxx";
重新加载数据没有任何作用。您应该手动更新该值,如下所示:
(AccountDetailsSection.Elements [0] as StringElement).Value = "xxx";
this.Root.Reload ( AccountDetailsSection, UITableViewRowAnimation.Fade);
希望这有帮助。当您从自定义对象中指定元素的值时,如下所示:
AccountDetailsSection = new Section ("Details"){
new StringElement ("Code:", _Account.Code),
new StringElement ("Name:", _Account.Name) };
您将获得所需的结果,但元素将丢失指向对象属性的指针。因此,如果稍后更改属性的值,例如:
_Account.Code = "xxx";
重新加载数据没有任何作用。您应该手动更新该值,如下所示:
(AccountDetailsSection.Elements [0] as StringElement).Value = "xxx";
this.Root.Reload ( AccountDetailsSection, UITableViewRowAnimation.Fade);
希望这能有所帮助。谢谢。。我会尝试一下(可能需要一段时间才能回来),不过我希望有一个解决方案,只需重新加载数据集即可。谢谢。。我会尝试一下(可能需要一段时间才能回来),虽然我希望有一个解决方案,只需重新加载数据集即可。。