更新MVVM中的ViewModel内容
本文关键字:内容 ViewModel 中的 MVVM 更新 | 更新日期: 2023-09-27 18:01:50
我有一个列表在我的XAML页面绑定到我的ViewModel。列表只显示条目-没有功能来编辑或更新它们(它们是从服务器api读取的)。
在应用程序栏中,我有一个按钮用于重新加载列表(再次向服务器发送请求)。
我必须为这个"重新加载功能"做些什么?
我考虑如下:
- 删除我的现有条目集合
- 再次启动LoadData
有我的问题的片段吗?什么是内存问题,因为我以前的现有集合?
如果你认为你的回调将是相当轻的,这样的东西将工作。如果你认为它可能很重,有很多物品要返回,那么这可能不是最有效的方法,但仍然有效:
public class YourViewModel
{
public ObservableCollection<YourDataType> YourCollection { get; set; }
public ICommand ReloadDataCommand { get; set; }
public YourViewModel()
{
YourCollection = new ObservableCollection<YourDataType>();
ReloadDataCommand = new DelegateCommand(ReloadData);
}
private void ReloadData()
{
//Get your new data;
YourCollection = new ObservableCollection(someService.GetData());
RaisePropertyChange("YourCollection");
//Depending on how many items your bringing in will depend on whether its a good idea to recreate the whole collection like this. If its too big then you may be better off removing/adding these items as needed.
}
}
在XAML: <Button Content="Reload" Command="{Binding ReloadDataCommand}" />
<List ItemsSource="{Binding YourCollection}">
<!-- All your other list stuff -->
</List>
希望能有所帮助