如何在棱镜区域更新当前视图
本文关键字:视图 更新 区域 棱镜 | 更新日期: 2023-09-27 18:14:50
我想知道在棱镜区域加载后是否有方法更新我当前的视图。我的视图在加载时自动更新,并且每次调用时都使用生命周期接口加载。是否有一种方法,我们可以更新当前视图,如更新文件夹?
首先,视图模型(以及它的视图)应该在模型更改时自动更新自己,可以通过INotifyPropertyChanged
、专用事件、EventAggregator
的使用或任何其他消息传递系统。
也就是说,如果您希望视图模型仅在某个时间点更新(例如,当用户单击更新按钮时),您应该将更新代码移出NavigatedTo
方法,并从NavigatedTo
和UpdateCommand
中调用该方法。
internal class MyViewModel : BindableBase, INavigationAware
{
public MyViewModel( IDataSource theSourceOfData )
{
_theSourceOfData = theSourceOfData;
UpdateCommand = new DelegateCommand( UpdateData );
}
public string MyProperty
{
get
{
return _myProperty;
}
set
{
SetProperty( ref _myProperty, value );
}
}
public DelegateCommand UpdateCommand { get; }
#region INavigationAware
public void OnNavigatedTo( NavigationContext navigationContext )
{
UpdateData();
}
#endregion
#region private
private readonly IDataSource _theSourceOfData;
private string _myProperty;
private void UpdateData()
{
_myProperty = _theSourceOfData.FetchTheData();
}
#endregion
}
现在,如果我们单击更新按钮,MyViewModel.MyProperty
将被更新,并且更改通知将推送到视图。如果我们导航到视图模型,同样会发生