mirror of
				https://github.com/Nioux/AideDeJeu.git
				synced 2025-10-30 23:16:09 +00:00 
			
		
		
		
	Séparation ItemsPage / FilteredItemsPage
This commit is contained in:
		
							parent
							
								
									73a3cc5982
								
							
						
					
					
						commit
						f8e5423d8f
					
				
					 7 changed files with 184 additions and 94 deletions
				
			
		|  | @ -39,6 +39,9 @@ | ||||||
|     <Compile Update="Views\ItemDetailPage.xaml.cs"> |     <Compile Update="Views\ItemDetailPage.xaml.cs"> | ||||||
|       <DependentUpon>ItemDetailPage.xaml</DependentUpon> |       <DependentUpon>ItemDetailPage.xaml</DependentUpon> | ||||||
|     </Compile> |     </Compile> | ||||||
|  |     <Compile Update="Views\FilteredItemsPage.xaml.cs"> | ||||||
|  |       <DependentUpon>FilteredItemsPage.xaml</DependentUpon> | ||||||
|  |     </Compile> | ||||||
|     <Compile Update="Views\ItemsPage.xaml.cs"> |     <Compile Update="Views\ItemsPage.xaml.cs"> | ||||||
|       <DependentUpon>ItemsPage.xaml</DependentUpon> |       <DependentUpon>ItemsPage.xaml</DependentUpon> | ||||||
|     </Compile> |     </Compile> | ||||||
|  |  | ||||||
|  | @ -81,7 +81,14 @@ namespace AideDeJeu.ViewModels | ||||||
|                         { |                         { | ||||||
|                             var itemsViewModel = new ItemsViewModel() { AllItems = items }; |                             var itemsViewModel = new ItemsViewModel() { AllItems = items }; | ||||||
|                             itemsViewModel.LoadItemsCommand.Execute(null); |                             itemsViewModel.LoadItemsCommand.Execute(null); | ||||||
|                             await Navigator.GotoItemsPageAsync(itemsViewModel); |                             if (items.GetNewFilterViewModel() == null) | ||||||
|  |                             { | ||||||
|  |                                 await Navigator.GotoItemsPageAsync(itemsViewModel); | ||||||
|  |                             } | ||||||
|  |                             else | ||||||
|  |                             { | ||||||
|  |                                 await Navigator.GotoFilteredItemsPageAsync(itemsViewModel); | ||||||
|  |                             } | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                     else |                     else | ||||||
|  |  | ||||||
|  | @ -42,5 +42,13 @@ namespace AideDeJeu.ViewModels | ||||||
|             await Navigation.PushAsync(new ItemsPage(itemsVM)); |             await Navigation.PushAsync(new ItemsPage(itemsVM)); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         public async Task GotoFilteredItemsPageAsync(ItemsViewModel itemsVM) | ||||||
|  |         { | ||||||
|  |             if (itemsVM == null) | ||||||
|  |                 return; | ||||||
|  | 
 | ||||||
|  |             await Navigation.PushAsync(new FilteredItemsPage(itemsVM)); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										70
									
								
								AideDeJeu/AideDeJeu/Views/FilteredItemsPage.xaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								AideDeJeu/AideDeJeu/Views/FilteredItemsPage.xaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,70 @@ | ||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <MasterDetailPage  | ||||||
|  |     xmlns="http://xamarin.com/schemas/2014/forms"  | ||||||
|  |     xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"  | ||||||
|  |     xmlns:local="clr-namespace:AideDeJeu.Views"  | ||||||
|  |     xmlns:tools="clr-namespace:AideDeJeu.Tools"  | ||||||
|  |     x:Class="AideDeJeu.Views.FilteredItemsPage"  | ||||||
|  |     x:Name="This"  | ||||||
|  |     IsPresented="False"  | ||||||
|  |     Title="{Binding Title}"> | ||||||
|  |     <MasterDetailPage.ToolbarItems> | ||||||
|  |         <ToolbarItem Name="About" Text="À propos de..." Order="Secondary" Icon="wooden_sign.png" Command="{Binding Main.AboutCommand}" /> | ||||||
|  |     </MasterDetailPage.ToolbarItems> | ||||||
|  |     <MasterDetailPage.Resources> | ||||||
|  |         <ResourceDictionary> | ||||||
|  |         </ResourceDictionary> | ||||||
|  |     </MasterDetailPage.Resources> | ||||||
|  |     <MasterDetailPage.Master> | ||||||
|  |         <ContentPage Title=" "> | ||||||
|  |             <StackLayout Orientation="Vertical"> | ||||||
|  |                 <ListView SelectionMode="None" ItemsSource="{Binding Filter.Filters}" HasUnevenRows="True" RowHeight="-1" SeparatorVisibility="None" IsPullToRefreshEnabled="False" HorizontalOptions="FillAndExpand" > | ||||||
|  |                     <ListView.ItemTemplate> | ||||||
|  |                         <DataTemplate> | ||||||
|  |                             <ViewCell> | ||||||
|  |                                 <ViewCell.View> | ||||||
|  |                                     <StackLayout Margin="10,5,10,0" Padding="0" Spacing="0"> | ||||||
|  |                                         <Label BindingContext="{Binding}" Text="{Binding Name}" Style="{StaticResource Key=subsubsection}" /> | ||||||
|  |                                         <Picker HorizontalOptions="FillAndExpand" ItemsSource="{Binding KeyValues, Mode=OneWay}" ItemDisplayBinding="{Binding Value, Mode=OneWay}" SelectedIndex="{Binding Index}" /> | ||||||
|  |                                     </StackLayout> | ||||||
|  |                                 </ViewCell.View> | ||||||
|  |                             </ViewCell> | ||||||
|  |                         </DataTemplate> | ||||||
|  |                     </ListView.ItemTemplate> | ||||||
|  |                 </ListView> | ||||||
|  |             </StackLayout> | ||||||
|  |         </ContentPage> | ||||||
|  |     </MasterDetailPage.Master> | ||||||
|  |     <MasterDetailPage.Detail> | ||||||
|  |         <ContentPage Title=""> | ||||||
|  |             <Grid VerticalOptions="Fill" HorizontalOptions="Fill"> | ||||||
|  |                 <Grid.ColumnDefinitions> | ||||||
|  |                     <ColumnDefinition Width="auto" /> | ||||||
|  |                     <ColumnDefinition Width="*" /> | ||||||
|  |                 </Grid.ColumnDefinitions> | ||||||
|  |                 <Grid.RowDefinitions> | ||||||
|  |                     <RowDefinition Height="auto" /> | ||||||
|  |                     <RowDefinition Height="*" /> | ||||||
|  |                 </Grid.RowDefinitions> | ||||||
|  |                 <Button Grid.Column="0" Grid.Row="0" Text="=" Clicked="Button_Clicked"/> | ||||||
|  |                 <SearchBar Grid.Column="1" Grid.Row="0" x:Name="SearchBar" HeightRequest="42" SearchCommand="{Binding SearchCommand}" SearchCommandParameter="{Binding Text, Source={x:Reference SearchBar}}"> | ||||||
|  |                     <SearchBar.Behaviors> | ||||||
|  |                         <tools:TextChangedBehavior /> | ||||||
|  |                     </SearchBar.Behaviors> | ||||||
|  |                 </SearchBar> | ||||||
|  |                 <ListView Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2" x:Name="ItemsListView" ItemsSource="{Binding Items}" VerticalOptions="FillAndExpand" HasUnevenRows="true" CachingStrategy="RecycleElement" SelectedItem="{Binding SelectedItem}" ItemTapped="ItemsListView_ItemTapped"> | ||||||
|  |                     <ListView.ItemTemplate> | ||||||
|  |                         <DataTemplate> | ||||||
|  |                             <ViewCell AutomationProperties.IsInAccessibleTree="True" AutomationId="machin" AutomationProperties.Name="hop"> | ||||||
|  |                                 <StackLayout Padding="10" Orientation="Vertical"> | ||||||
|  |                                     <Label Text="{Binding Name}" LineBreakMode="NoWrap" Style="{DynamicResource subsubsection}" FontSize="16" /> | ||||||
|  |                                     <Label Text="{Binding AltNameText}" LineBreakMode="NoWrap" Style="{DynamicResource subsubsection}" FontSize="12" /> | ||||||
|  |                                 </StackLayout> | ||||||
|  |                             </ViewCell> | ||||||
|  |                         </DataTemplate> | ||||||
|  |                     </ListView.ItemTemplate> | ||||||
|  |                 </ListView> | ||||||
|  |             </Grid> | ||||||
|  |         </ContentPage> | ||||||
|  |     </MasterDetailPage.Detail> | ||||||
|  | </MasterDetailPage> | ||||||
							
								
								
									
										77
									
								
								AideDeJeu/AideDeJeu/Views/FilteredItemsPage.xaml.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								AideDeJeu/AideDeJeu/Views/FilteredItemsPage.xaml.cs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,77 @@ | ||||||
|  | using AideDeJeu.ViewModels; | ||||||
|  | using System; | ||||||
|  | using System.Linq; | ||||||
|  | using Xamarin.Forms; | ||||||
|  | using Xamarin.Forms.Xaml; | ||||||
|  | 
 | ||||||
|  | namespace AideDeJeu.Views | ||||||
|  | { | ||||||
|  |     [XamlCompilation(XamlCompilationOptions.Compile)] | ||||||
|  | 	public partial class FilteredItemsPage : MasterDetailPage | ||||||
|  |     { | ||||||
|  |         MainViewModel Main | ||||||
|  |         { | ||||||
|  |             get | ||||||
|  |             { | ||||||
|  |                 return DependencyService.Get<MainViewModel>(); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         //INavig//ator Navigator; | ||||||
|  | 
 | ||||||
|  |         public ItemsViewModel _ItemsViewModel; | ||||||
|  |         public ItemsViewModel ItemsViewModel | ||||||
|  |         { | ||||||
|  |             get | ||||||
|  |             { | ||||||
|  |                 return _ItemsViewModel; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         public FilteredItemsPage (ItemsViewModel itemsViewModel) | ||||||
|  | 		{ | ||||||
|  | 			InitializeComponent (); | ||||||
|  | 
 | ||||||
|  |             BindingContext = _ItemsViewModel = itemsViewModel; // Main; | ||||||
|  | 
 | ||||||
|  |             //this.SizeChanged += (o, e) => { | ||||||
|  |             //    if(this.Width > 0 && this.Height > 0) | ||||||
|  |             //    { | ||||||
|  |             //        this.IsPresented = this.Width > this.Height; | ||||||
|  |             //    } | ||||||
|  |             //}; | ||||||
|  |         } | ||||||
|  |         public FilteredItemsPage() | ||||||
|  |         { | ||||||
|  |             InitializeComponent(); | ||||||
|  | 
 | ||||||
|  |             BindingContext = Main; | ||||||
|  | 
 | ||||||
|  |             //this.SizeChanged += (o, e) => { | ||||||
|  |             //    if (this.Width > 0 && this.Height > 0) | ||||||
|  |             //    { | ||||||
|  |             //        this.IsPresented = this.Width > this.Height; | ||||||
|  |             //    } | ||||||
|  |             //}; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         protected override void OnAppearing() | ||||||
|  |         { | ||||||
|  |             base.OnAppearing(); | ||||||
|  | 
 | ||||||
|  |             this.MasterBehavior = MasterBehavior.Popover; | ||||||
|  | 
 | ||||||
|  |             //if (Main.Items.Count() == 0) | ||||||
|  |                 //Main.LoadItemsCommand.Execute(null); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         private void ItemsListView_ItemTapped(object sender, ItemTappedEventArgs e) | ||||||
|  |         { | ||||||
|  |             if (e.Item == null) return; | ||||||
|  |             ((ListView)sender).SelectedItem = null; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         private void Button_Clicked(object sender, EventArgs e) | ||||||
|  |         { | ||||||
|  |             this.IsPresented = !this.IsPresented; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -1,70 +1,25 @@ | ||||||
| <?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||||||
| <MasterDetailPage  | <ContentPage  | ||||||
|     xmlns="http://xamarin.com/schemas/2014/forms"  |     xmlns="http://xamarin.com/schemas/2014/forms"  | ||||||
|     xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"  |     xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"  | ||||||
|     xmlns:local="clr-namespace:AideDeJeu.Views"  |     xmlns:local="clr-namespace:AideDeJeu.Views"  | ||||||
|     xmlns:tools="clr-namespace:AideDeJeu.Tools"  |     xmlns:tools="clr-namespace:AideDeJeu.Tools"  | ||||||
|     x:Class="AideDeJeu.Views.ItemsPage"  |     x:Class="AideDeJeu.Views.ItemsPage"  | ||||||
|     x:Name="This"  |     x:Name="This"  | ||||||
|     IsPresented="False"  |  | ||||||
|     Title="{Binding Title}"> |     Title="{Binding Title}"> | ||||||
|     <MasterDetailPage.ToolbarItems> |     <ContentPage.ToolbarItems> | ||||||
|         <ToolbarItem Name="About" Text="À propos de..." Order="Secondary" Icon="wooden_sign.png" Command="{Binding Main.AboutCommand}" /> |         <ToolbarItem Name="About" Text="À propos de..." Order="Secondary" Icon="wooden_sign.png" Command="{Binding Main.AboutCommand}" /> | ||||||
|     </MasterDetailPage.ToolbarItems> |     </ContentPage.ToolbarItems> | ||||||
|     <MasterDetailPage.Resources> |     <ListView HorizontalOptions="Fill" x:Name="ItemsListView" ItemsSource="{Binding Items}" VerticalOptions="FillAndExpand" HasUnevenRows="true" CachingStrategy="RecycleElement" SelectedItem="{Binding SelectedItem}" ItemTapped="ItemsListView_ItemTapped"> | ||||||
|         <ResourceDictionary> |         <ListView.ItemTemplate> | ||||||
|         </ResourceDictionary> |             <DataTemplate> | ||||||
|     </MasterDetailPage.Resources> |                 <ViewCell AutomationProperties.IsInAccessibleTree="True" AutomationId="machin" AutomationProperties.Name="hop"> | ||||||
|     <MasterDetailPage.Master> |                     <StackLayout Padding="10" Orientation="Vertical"> | ||||||
|         <ContentPage Title=" "> |                         <Label Text="{Binding Name}" LineBreakMode="NoWrap" Style="{DynamicResource subsubsection}" FontSize="16" /> | ||||||
|             <StackLayout Orientation="Vertical"> |                         <Label Text="{Binding AltNameText}" LineBreakMode="NoWrap" Style="{DynamicResource subsubsection}" FontSize="12" /> | ||||||
|                 <ListView SelectionMode="None" ItemsSource="{Binding Filter.Filters}" HasUnevenRows="True" RowHeight="-1" SeparatorVisibility="None" IsPullToRefreshEnabled="False" HorizontalOptions="FillAndExpand" > |                     </StackLayout> | ||||||
|                     <ListView.ItemTemplate> |                 </ViewCell> | ||||||
|                         <DataTemplate> |             </DataTemplate> | ||||||
|                             <ViewCell> |         </ListView.ItemTemplate> | ||||||
|                                 <ViewCell.View> |     </ListView> | ||||||
|                                     <StackLayout Margin="10,5,10,0" Padding="0" Spacing="0"> | </ContentPage> | ||||||
|                                         <Label BindingContext="{Binding}" Text="{Binding Name}" Style="{StaticResource Key=subsubsection}" /> |  | ||||||
|                                         <Picker HorizontalOptions="FillAndExpand" ItemsSource="{Binding KeyValues, Mode=OneWay}" ItemDisplayBinding="{Binding Value, Mode=OneWay}" SelectedIndex="{Binding Index}" /> |  | ||||||
|                                     </StackLayout> |  | ||||||
|                                 </ViewCell.View> |  | ||||||
|                             </ViewCell> |  | ||||||
|                         </DataTemplate> |  | ||||||
|                     </ListView.ItemTemplate> |  | ||||||
|                 </ListView> |  | ||||||
|             </StackLayout> |  | ||||||
|         </ContentPage> |  | ||||||
|     </MasterDetailPage.Master> |  | ||||||
|     <MasterDetailPage.Detail> |  | ||||||
|         <ContentPage Title=""> |  | ||||||
|             <Grid VerticalOptions="Fill" HorizontalOptions="Fill"> |  | ||||||
|                 <Grid.ColumnDefinitions> |  | ||||||
|                     <ColumnDefinition Width="auto" /> |  | ||||||
|                     <ColumnDefinition Width="*" /> |  | ||||||
|                 </Grid.ColumnDefinitions> |  | ||||||
|                 <Grid.RowDefinitions> |  | ||||||
|                     <RowDefinition Height="auto" /> |  | ||||||
|                     <RowDefinition Height="*" /> |  | ||||||
|                 </Grid.RowDefinitions> |  | ||||||
|                 <Button Grid.Column="0" Grid.Row="0" Text="=" Clicked="Button_Clicked"/> |  | ||||||
|                 <SearchBar Grid.Column="1" Grid.Row="0" x:Name="SearchBar" HeightRequest="42" SearchCommand="{Binding SearchCommand}" SearchCommandParameter="{Binding Text, Source={x:Reference SearchBar}}"> |  | ||||||
|                     <SearchBar.Behaviors> |  | ||||||
|                         <tools:TextChangedBehavior /> |  | ||||||
|                     </SearchBar.Behaviors> |  | ||||||
|                 </SearchBar> |  | ||||||
|                 <ListView Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2" x:Name="ItemsListView" ItemsSource="{Binding Items}" VerticalOptions="FillAndExpand" HasUnevenRows="true" CachingStrategy="RecycleElement" SelectedItem="{Binding SelectedItem}" ItemTapped="ItemsListView_ItemTapped"> |  | ||||||
|                     <ListView.ItemTemplate> |  | ||||||
|                         <DataTemplate> |  | ||||||
|                             <ViewCell AutomationProperties.IsInAccessibleTree="True" AutomationId="machin" AutomationProperties.Name="hop"> |  | ||||||
|                                 <StackLayout Padding="10" Orientation="Vertical"> |  | ||||||
|                                     <Label Text="{Binding Name}" LineBreakMode="NoWrap" Style="{DynamicResource subsubsection}" FontSize="16" /> |  | ||||||
|                                     <Label Text="{Binding AltNameText}" LineBreakMode="NoWrap" Style="{DynamicResource subsubsection}" FontSize="12" /> |  | ||||||
|                                 </StackLayout> |  | ||||||
|                             </ViewCell> |  | ||||||
|                         </DataTemplate> |  | ||||||
|                     </ListView.ItemTemplate> |  | ||||||
|                 </ListView> |  | ||||||
|             </Grid> |  | ||||||
|         </ContentPage> |  | ||||||
|     </MasterDetailPage.Detail> |  | ||||||
| </MasterDetailPage> |  | ||||||
|  | @ -7,7 +7,7 @@ using Xamarin.Forms.Xaml; | ||||||
| namespace AideDeJeu.Views | namespace AideDeJeu.Views | ||||||
| { | { | ||||||
|     [XamlCompilation(XamlCompilationOptions.Compile)] |     [XamlCompilation(XamlCompilationOptions.Compile)] | ||||||
| 	public partial class ItemsPage : MasterDetailPage | 	public partial class ItemsPage : ContentPage | ||||||
|     { |     { | ||||||
|         MainViewModel Main |         MainViewModel Main | ||||||
|         { |         { | ||||||
|  | @ -16,7 +16,6 @@ namespace AideDeJeu.Views | ||||||
|                 return DependencyService.Get<MainViewModel>(); |                 return DependencyService.Get<MainViewModel>(); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         //INavig//ator Navigator; |  | ||||||
| 
 | 
 | ||||||
|         public ItemsViewModel _ItemsViewModel; |         public ItemsViewModel _ItemsViewModel; | ||||||
|         public ItemsViewModel ItemsViewModel |         public ItemsViewModel ItemsViewModel | ||||||
|  | @ -30,37 +29,13 @@ namespace AideDeJeu.Views | ||||||
| 		{ | 		{ | ||||||
| 			InitializeComponent (); | 			InitializeComponent (); | ||||||
| 
 | 
 | ||||||
|             BindingContext = _ItemsViewModel = itemsViewModel; // Main; |             BindingContext = _ItemsViewModel = itemsViewModel; | ||||||
| 
 |  | ||||||
|             //this.SizeChanged += (o, e) => { |  | ||||||
|             //    if(this.Width > 0 && this.Height > 0) |  | ||||||
|             //    { |  | ||||||
|             //        this.IsPresented = this.Width > this.Height; |  | ||||||
|             //    } |  | ||||||
|             //}; |  | ||||||
|         } |         } | ||||||
|         public ItemsPage() |         public ItemsPage() | ||||||
|         { |         { | ||||||
|             InitializeComponent(); |             InitializeComponent(); | ||||||
| 
 | 
 | ||||||
|             BindingContext = Main; |             BindingContext = Main; | ||||||
| 
 |  | ||||||
|             //this.SizeChanged += (o, e) => { |  | ||||||
|             //    if (this.Width > 0 && this.Height > 0) |  | ||||||
|             //    { |  | ||||||
|             //        this.IsPresented = this.Width > this.Height; |  | ||||||
|             //    } |  | ||||||
|             //}; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         protected override void OnAppearing() |  | ||||||
|         { |  | ||||||
|             base.OnAppearing(); |  | ||||||
| 
 |  | ||||||
|             this.MasterBehavior = MasterBehavior.Popover; |  | ||||||
| 
 |  | ||||||
|             //if (Main.Items.Count() == 0) |  | ||||||
|                 //Main.LoadItemsCommand.Execute(null); |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         private void ItemsListView_ItemTapped(object sender, ItemTappedEventArgs e) |         private void ItemsListView_ItemTapped(object sender, ItemTappedEventArgs e) | ||||||
|  | @ -68,10 +43,5 @@ namespace AideDeJeu.Views | ||||||
|             if (e.Item == null) return; |             if (e.Item == null) return; | ||||||
|             ((ListView)sender).SelectedItem = null; |             ((ListView)sender).SelectedItem = null; | ||||||
|         } |         } | ||||||
| 
 |  | ||||||
|         private void Button_Clicked(object sender, EventArgs e) |  | ||||||
|         { |  | ||||||
|             this.IsPresented = !this.IsPresented; |  | ||||||
|         } |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Yan Maniez
						Yan Maniez