我的XAML页面上有一个列表绑定到我的ViewModel。列表仅显示条目 - 没有要编辑或更新它们的功能(它们是从Server api中读取的)。
在应用程序栏中,我有一个用于重新加载列表的按钮(再次将请求发送到服务器)。
我必须为此“重新加载功能”做些什么?
我想要关注:
我的问题是否有任何摘要? 由于我以前的现有收藏品,内存问题是什么?
答案 0 :(得分:1)
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>
希望这有帮助