Windowsストアアプリケーションを作成しています。
GridViewを備えたView(FavoritenGrid)があります。このビューは、DataContext(FavoritenViewModel)で機能します。また、DataContextにはList(FavList)があります。
ビューをロードするときに最新のFavListを取得したいと思います。
コードスニペット:
public FavoritenGrid()
{
this.InitializeComponent();
_vm = ((FavoritenViewModel)this.DataContext);
((DataViewModel)this.DataContext).LoadDataCommand.Execute(null);
groupedItemsViewSource.Source = _vm.FavList;
(semanticZoom.ZoomedOutView as ListViewBase).ItemsSource = groupedItemsViewSource.View.CollectionGroups;
}
FavoritenViewModelリスト
private ObservableCollection<FavoritenGroup<Draggable>> _favList;
public ObservableCollection<FavoritenGroup<Draggable>> FavList
{
get { return _favList; }
set
{
_favList = value;
RaisePropertyChanged("FavList");
}
}
FavoritenViewModelロード方法
private async Task loadData()
{
IsLoading = true;
FavList = new ObservableCollection<FavoritenGroup<Draggable>>();
FavList = await getFavoriten();
IsLoading = false;
}
空のリストでリストを初期化しないと、NullPointerExceptionが発生します。
FavList = new ObservableCollection<FavoritenGroup<Draggable>>();
このメソッドは、最新のFavListをロードします。ただし、ビューには表示されません。変更を確認するには、ビューを終了して再度ロードする必要があります。
FavList = await getFavoriten();