更新MVVM中的ViewModel内容

本文关键字:内容 ViewModel 中的 MVVM 更新 | 更新日期: 2023-09-27 18:01:50

我有一个列表在我的XAML页面绑定到我的ViewModel。列表只显示条目-没有功能来编辑或更新它们(它们是从服务器api读取的)。

在应用程序栏中,我有一个按钮用于重新加载列表(再次向服务器发送请求)。

我必须为这个"重新加载功能"做些什么?

我考虑如下:

  • 删除我的现有条目集合
  • 再次启动LoadData

有我的问题的片段吗?什么是内存问题,因为我以前的现有集合?

更新MVVM中的ViewModel内容

如果你认为你的回调将是相当轻的,这样的东西将工作。如果你认为它可能很重,有很多物品要返回,那么这可能不是最有效的方法,但仍然有效:

 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>

希望能有所帮助