mirror of
				https://github.com/Nioux/AideDeJeu.git
				synced 2025-10-31 15:36:07 +00:00 
			
		
		
		
	Réparation provisoir UWP
This commit is contained in:
		
							parent
							
								
									48a5a94371
								
							
						
					
					
						commit
						c1c00d0659
					
				
					 3 changed files with 30 additions and 13 deletions
				
			
		|  | @ -19,7 +19,7 @@ namespace AideDeJeu.ViewModels | ||||||
|         public ItemsViewModel(ItemSourceType itemSourceType) |         public ItemsViewModel(ItemSourceType itemSourceType) | ||||||
|         { |         { | ||||||
|             this.ItemSourceType = itemSourceType; |             this.ItemSourceType = itemSourceType; | ||||||
|             LoadItemsCommand = new Command(async () => await ExecuteLoadItemsCommandAsync()); |             LoadItemsCommand = new Command(async () => await ExecuteLoadItemsCommandAsync().ConfigureAwait(false)); | ||||||
|         } |         } | ||||||
|         public ICommand LoadItemsCommand { get; protected set; } |         public ICommand LoadItemsCommand { get; protected set; } | ||||||
|         //public abstract void ExecuteLoadItemsCommand(); |         //public abstract void ExecuteLoadItemsCommand(); | ||||||
|  | @ -75,19 +75,24 @@ namespace AideDeJeu.ViewModels | ||||||
|             Main.IsLoading = true; |             Main.IsLoading = true; | ||||||
|             try |             try | ||||||
|             { |             { | ||||||
|  |                 // Yan : c'est pas plutôt cette partie qui devrait être dans une autre Task ? | ||||||
|                 var filterViewModel = Main.GetFilterViewModel(ItemSourceType); |                 var filterViewModel = Main.GetFilterViewModel(ItemSourceType); | ||||||
|                 var items = await filterViewModel.FilterItems(AllItems, token); |                 var items = await filterViewModel.FilterItems(AllItems, token); | ||||||
|                 await Task.Run(() => | 
 | ||||||
|                 { |                 await Task.Run(async () => { | ||||||
|                     Main.Items.Clear(); |                     // Yan : plus besoin de boucle si on change toute la liste d'un coup ;) | ||||||
|                     foreach (var item in items) |                     // Yan : indispensable de repasser sur l'ui thread pour la version uwp | ||||||
|                     { |                     Device.BeginInvokeOnMainThread(() => Main.Items = items); | ||||||
|                         token.ThrowIfCancellationRequested(); |                     //Main.Items.Clear(); | ||||||
|                         Main.Items.Add(item); |                     //foreach (var item in items) | ||||||
|                     } |                     //{ | ||||||
|                 }); |                     //    token.ThrowIfCancellationRequested(); | ||||||
|  |                     //    Main.Items.Add(item); | ||||||
|  |                     //} | ||||||
|  |                 }, cancellationToken: token); // Yan : c'est ici qu'il faudrait coller le token non ? | ||||||
| 
 | 
 | ||||||
|                 //On arrete le loading ici car on annule toujours avant de lancer une nouvelle opération |                 //On arrete le loading ici car on annule toujours avant de lancer une nouvelle opération | ||||||
|  |                 // Yan : ?? du coup le IsLoading repasse pas à false en cas de cancel ou d'autre exception ? | ||||||
|                 Main.IsLoading = false; |                 Main.IsLoading = false; | ||||||
|             } |             } | ||||||
|             catch (OperationCanceledException ex) |             catch (OperationCanceledException ex) | ||||||
|  |  | ||||||
|  | @ -89,7 +89,19 @@ namespace AideDeJeu.ViewModels | ||||||
|             return AllFiltersViewModel[itemSourceType].Value; |             return AllFiltersViewModel[itemSourceType].Value; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public ObservableCollection<Item> Items { get; private set; } = new ObservableCollection<Item>(); |         // Yan : pas besoin d'ObservableCollection, on ne modifie jamais la liste item par item | ||||||
|  |         public IEnumerable<Item> _Items = new List<Item>(); | ||||||
|  |         public IEnumerable<Item> Items | ||||||
|  |         { | ||||||
|  |             get | ||||||
|  |             { | ||||||
|  |                 return _Items; | ||||||
|  |             } | ||||||
|  |             set | ||||||
|  |             { | ||||||
|  |                 SetProperty(ref _Items, value); | ||||||
|  |             } | ||||||
|  |         } | ||||||
| 
 | 
 | ||||||
|         private Item _SelectedItem; |         private Item _SelectedItem; | ||||||
|         public Item SelectedItem |         public Item SelectedItem | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
| using AideDeJeuLib.Monsters; | using AideDeJeuLib.Monsters; | ||||||
| using AideDeJeuLib.Spells; | using AideDeJeuLib.Spells; | ||||||
| using System; | using System; | ||||||
| 
 | using System.Linq; | ||||||
| using Xamarin.Forms; | using Xamarin.Forms; | ||||||
| using Xamarin.Forms.Xaml; | using Xamarin.Forms.Xaml; | ||||||
| 
 | 
 | ||||||
|  | @ -35,7 +35,7 @@ namespace AideDeJeu.Views | ||||||
|         { |         { | ||||||
|             base.OnAppearing(); |             base.OnAppearing(); | ||||||
| 
 | 
 | ||||||
|             if (Main.Items.Count == 0) |             if (Main.Items.Count() == 0) | ||||||
|                 Main.LoadItemsCommand.Execute(null); |                 Main.LoadItemsCommand.Execute(null); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Yan Maniez
						Yan Maniez