有时,我们可能需要刷新View的显示内容,比如后台线程可能一直在向数据库里放数据,而XAF的显示对应数据库表的View是不会自动刷新的,除非手动点击刷新。这时可以在代码里控制定时刷新,刷新的方法有两种:
一.使用RefreshAction
RefreshAction属于RefreshController,所以,在ViewController中得到该Controller即可
protected override void OnActivated()
{
base.OnActivated();
RefreshController rc = Frame.GetController<RefreshController>();
if (rc != null)
{
SimpleAction sa= rc.RefreshAction;
}
}
刷新View
if (sa != null)
sa.DoExecute();
二.使用对应View的ObjectSpace
每个View都对应一个ObjectSpace,故使用其Refresh方法即可。
ObjectSpace.Refresh();
注意,如果更改是在ViewController里做出的,可能需要先提交更改后刷新才会看到效果
ObjectSpace.CommitChanges();
ObjectSpace.Refresh();
三.刷新View的CollectionSource
((ListView)View).CollectionSource.Reload();