mirror of
				https://github.com/Nioux/AideDeJeu.git
				synced 2025-10-31 07:26:09 +00:00 
			
		
		
		
	Test FlyoutHeader dynamique par page
This commit is contained in:
		
							parent
							
								
									7479433922
								
							
						
					
					
						commit
						28b4d60c80
					
				
					 3 changed files with 72 additions and 8 deletions
				
			
		|  | @ -55,13 +55,13 @@ namespace AideDeJeu.Views.Library | |||
|             //LoadPageAsync(); | ||||
|         } | ||||
| 
 | ||||
|         protected override void OnAppearing() | ||||
|         { | ||||
|             base.OnAppearing(); | ||||
|             LoadPageAsync(); | ||||
|         } | ||||
|         //protected override void OnAppearing() | ||||
|         //{ | ||||
|         //    base.OnAppearing(); | ||||
|         //    LoadPageAsync(); | ||||
|         //} | ||||
| 
 | ||||
|         private string _Path { get; set; } = "index.md"; | ||||
|         private string _Path { get; set; } = null; //"index.md"; | ||||
|         public string Path | ||||
|         { | ||||
|             get | ||||
|  | @ -77,6 +77,7 @@ namespace AideDeJeu.Views.Library | |||
| 
 | ||||
|         private async Task LoadPageAsync() | ||||
|         { | ||||
|             if (Path == null) return; | ||||
|             var regex = new Regex("/?(?<file>.*?)(_with_(?<with>.*))?\\.md(#(?<anchor>.*))?"); | ||||
|             var match = regex.Match(Uri.UnescapeDataString(Path)); | ||||
|             var file = match.Groups["file"].Value; | ||||
|  |  | |||
|  | @ -5,6 +5,9 @@ | |||
|        xmlns:pc="clr-namespace:AideDeJeu.Views.PlayerCharacter" | ||||
|        xmlns:library="clr-namespace:AideDeJeu.Views.Library" | ||||
|        x:Class="AideDeJeu.Views.MainShell"> | ||||
|     <Shell.FlyoutHeader> | ||||
|         <Label Text="{Binding HeaderTitle}" /> | ||||
|     </Shell.FlyoutHeader> | ||||
| 
 | ||||
|     <ShellItem Title="Accueil"> | ||||
|         <ShellContent Title="Accueil"  ContentTemplate="{DataTemplate local:MainPage}" /> | ||||
|  | @ -16,7 +19,19 @@ | |||
|         <ShellContent Title="Dés"  ContentTemplate="{DataTemplate local:DicesPage}" /> | ||||
|     </ShellItem> | ||||
|     <ShellItem Title="Bibliothèque" FlyoutIcon="spell_book.png"> | ||||
|         <ShellContent Title="Bibliothèque" Icon="spell_book.png" ContentTemplate="{DataTemplate library:ItemPage}" /> | ||||
|         <!--<ShellContent Title="Bibliothèque" Icon="spell_book.png" ContentTemplate="{DataTemplate library:ItemPage}" />--> | ||||
|         <ShellContent Title="Bibliothèque" Icon="spell_book.png"> | ||||
|             <ShellContent.ContentTemplate> | ||||
|                 <DataTemplate> | ||||
|                     <library:ItemPage> | ||||
|                         <x:Arguments> | ||||
|                             <x:String>index.md</x:String> | ||||
|                         </x:Arguments> | ||||
|                     </library:ItemPage> | ||||
|                 </DataTemplate> | ||||
|             </ShellContent.ContentTemplate> | ||||
|         </ShellContent> | ||||
| 
 | ||||
|     </ShellItem> | ||||
|     <!--<FlyoutItem Title="Héros & Dragons"> | ||||
|         <ShellContent Title="Héros & Dragons" ContentTemplate="{DataTemplate library:ItemDetailPage}" /> | ||||
|  |  | |||
|  | @ -1,6 +1,9 @@ | |||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.ComponentModel; | ||||
| using System.Diagnostics; | ||||
| using System.Linq; | ||||
| using System.Runtime.CompilerServices; | ||||
| using System.Text; | ||||
| using System.Threading.Tasks; | ||||
| using System.Windows.Input; | ||||
|  | @ -10,7 +13,7 @@ using Xamarin.Forms.Xaml; | |||
| namespace AideDeJeu.Views | ||||
| { | ||||
|     [XamlCompilation(XamlCompilationOptions.Compile)] | ||||
|     public partial class MainShell : Shell | ||||
|     public partial class MainShell : Shell, INotifyPropertyChanged | ||||
|     { | ||||
|         public MainShell() | ||||
|         { | ||||
|  | @ -29,5 +32,50 @@ namespace AideDeJeu.Views | |||
|         { | ||||
|             await Shell.Current.GoToAsync(path); | ||||
|         } | ||||
| 
 | ||||
|         private string _HeaderTitle = string.Empty; | ||||
|         public string HeaderTitle | ||||
|         { | ||||
|             get | ||||
|             { | ||||
|                 return _HeaderTitle; | ||||
|             } | ||||
|             set | ||||
|             { | ||||
|                 SetProperty(ref _HeaderTitle, value); | ||||
|             } | ||||
|         } | ||||
|         protected override void OnNavigated(ShellNavigatedEventArgs args) | ||||
|         { | ||||
|             base.OnNavigated(args); | ||||
|             Debug.WriteLine(this.CurrentItem.CurrentItem.CurrentItem); | ||||
|             HeaderTitle = this.CurrentItem.CurrentItem.CurrentItem.Route; | ||||
|         } | ||||
| 
 | ||||
|         protected bool SetProperty<T>(ref T backingStore, T value, | ||||
|     [CallerMemberName]string propertyName = "", | ||||
|     Action onChanged = null) | ||||
|         { | ||||
|             if (EqualityComparer<T>.Default.Equals(backingStore, value)) | ||||
|                 return false; | ||||
| 
 | ||||
|             backingStore = value; | ||||
|             onChanged?.Invoke(); | ||||
|             CallOnPropertyChanged(propertyName); | ||||
|             return true; | ||||
|         } | ||||
| 
 | ||||
|         #region INotifyPropertyChanged | ||||
|         public event PropertyChangedEventHandler PropertyChanged; | ||||
|         protected void CallOnPropertyChanged([CallerMemberName] string propertyName = "") | ||||
|         { | ||||
|             var changed = PropertyChanged; | ||||
|             if (changed == null) | ||||
|                 return; | ||||
| 
 | ||||
|             changed.Invoke(this, new PropertyChangedEventArgs(propertyName)); | ||||
|         } | ||||
|         #endregion | ||||
| 
 | ||||
|     } | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Yan Maniez
						Yan Maniez