mirror of
				https://github.com/Nioux/AideDeJeu.git
				synced 2025-10-30 23:16:09 +00:00 
			
		
		
		
	Plein de changements de pickers
This commit is contained in:
		
							parent
							
								
									f2852eee7b
								
							
						
					
					
						commit
						2ccaef236b
					
				
					 8 changed files with 350 additions and 28 deletions
				
			
		|  | @ -62,6 +62,12 @@ | |||
|     <Compile Update="Views\MainTabbedPage.xaml.cs"> | ||||
|       <DependentUpon>MainTabbedPage.xaml</DependentUpon> | ||||
|     </Compile> | ||||
|     <Compile Update="Views\ItemPicker.xaml.cs"> | ||||
|       <DependentUpon>ItemPicker.xaml</DependentUpon> | ||||
|     </Compile> | ||||
|     <Compile Update="Views\ItemPickerView.xaml.cs"> | ||||
|       <DependentUpon>ItemPickerView.xaml</DependentUpon> | ||||
|     </Compile> | ||||
|   </ItemGroup> | ||||
| 
 | ||||
|   <ItemGroup> | ||||
|  |  | |||
|  | @ -73,6 +73,22 @@ namespace AideDeJeu.ViewModels | |||
|                 } | ||||
|             } | ||||
|         } | ||||
|         private AlignmentItem _SelectedAlignment = null; | ||||
|         public AlignmentItem SelectedAlignment | ||||
|         { | ||||
|             get | ||||
|             { | ||||
|                 return _SelectedAlignment; | ||||
|             } | ||||
|             set | ||||
|             { | ||||
|                 SetProperty(ref _SelectedAlignment, value); | ||||
|                 //if (0 <= _AlignmentSelectedIndex && _AlignmentSelectedIndex < Alignments.Result.Count) | ||||
|                 //{ | ||||
|                     SelectedPlayerCharacter.Alignment = SelectedAlignment; | ||||
|                 //} | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         public async Task<List<AlignmentItem>> LoadAlignmentsAsync(string alignment = null) | ||||
|         { | ||||
|  | @ -181,26 +197,41 @@ namespace AideDeJeu.ViewModels | |||
|             set | ||||
|             { | ||||
|                 SetProperty(ref _BackgroundSelectedIndex, value); | ||||
|                 SelectedPlayerCharacter.Background = Backgrounds.Result[_BackgroundSelectedIndex]; | ||||
|                 SelectedBackground = Backgrounds.Result[_BackgroundSelectedIndex]; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         private BackgroundItem _SelectedBackground = null; | ||||
|         public BackgroundItem SelectedBackground | ||||
|         { | ||||
|             get | ||||
|             { | ||||
|                 return _SelectedBackground; | ||||
|             } | ||||
|             set | ||||
|             { | ||||
|                 SetProperty(ref _SelectedBackground, value); | ||||
|                 SelectedBackgroundChanged(); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         private void SelectedBackgroundChanged() | ||||
|         { | ||||
|             SubBackgrounds = new NotifyTaskCompletion<List<SubBackgroundItem>>(Task.Run(() => LoadSubBackgroundsAsync(SelectedPlayerCharacter.Background))); | ||||
|             PersonalityTraits = new NotifyTaskCompletion<List<string>>(Task.Run(() => LoadPersonalityTraitsAsync(SelectedPlayerCharacter.Background))); | ||||
|             PersonalityIdeals = new NotifyTaskCompletion<List<string>>(Task.Run(() => LoadPersonalityIdealsAsync(SelectedPlayerCharacter.Background))); | ||||
|             PersonalityLinks = new NotifyTaskCompletion<List<string>>(Task.Run(() => LoadPersonalityLinksAsync(SelectedPlayerCharacter.Background))); | ||||
|             PersonalityDefects = new NotifyTaskCompletion<List<string>>(Task.Run(() => LoadPersonalityDefectsAsync(SelectedPlayerCharacter.Background))); | ||||
|             BackgroundSpecialties = new NotifyTaskCompletion<BackgroundSpecialtyItem>(Task.Run(() => LoadBackgroundsSpecialtiesAsync(SelectedPlayerCharacter.Background))); | ||||
|             Task.Run(async () => SelectedPlayerCharacter.BackgroundSkill = await LoadSkillAsync(SelectedPlayerCharacter.Background)); | ||||
|             SelectedPlayerCharacter.SubBackground = null; | ||||
|             SelectedPlayerCharacter.PersonalityTrait = null; | ||||
|             SelectedPlayerCharacter.PersonalityIdeal = null; | ||||
|             SelectedPlayerCharacter.PersonalityLink = null; | ||||
|             SelectedPlayerCharacter.PersonalityDefect = null; | ||||
|             SelectedPlayerCharacter.BackgroundSpecialty = null; | ||||
|             SelectedPlayerCharacter.Background = SelectedBackground; | ||||
| 
 | ||||
|             SubBackgrounds = new NotifyTaskCompletion<List<SubBackgroundItem>>(Task.Run(() => LoadSubBackgroundsAsync(SelectedBackground))); | ||||
|             PersonalityTraits = new NotifyTaskCompletion<List<string>>(Task.Run(() => LoadPersonalityTraitsAsync(SelectedBackground))); | ||||
|             PersonalityIdeals = new NotifyTaskCompletion<List<string>>(Task.Run(() => LoadPersonalityIdealsAsync(SelectedBackground))); | ||||
|             PersonalityLinks = new NotifyTaskCompletion<List<string>>(Task.Run(() => LoadPersonalityLinksAsync(SelectedBackground))); | ||||
|             PersonalityDefects = new NotifyTaskCompletion<List<string>>(Task.Run(() => LoadPersonalityDefectsAsync(SelectedBackground))); | ||||
|             BackgroundSpecialties = new NotifyTaskCompletion<BackgroundSpecialtyItem>(Task.Run(() => LoadBackgroundsSpecialtiesAsync(SelectedBackground))); | ||||
|             Task.Run(async () => SelectedPlayerCharacter.BackgroundSkill = await LoadSkillAsync(SelectedBackground)); | ||||
|             ResetAlignments(); | ||||
|         } | ||||
| 
 | ||||
|  | @ -229,20 +260,35 @@ namespace AideDeJeu.ViewModels | |||
|                 SetProperty(ref _SubBackgroundSelectedIndex, value); | ||||
|                 if (_SubBackgroundSelectedIndex == 0) | ||||
|                 { | ||||
|                     SelectedPlayerCharacter.SubBackground = null; | ||||
|                     //SelectedPlayerCharacter.SubBackground = null; | ||||
|                     SubBackgroundSelectedIndex = -1; | ||||
|                     SelectedSubBackground = null; | ||||
|                 } | ||||
|                 else if (_SubBackgroundSelectedIndex > 0) | ||||
|                 { | ||||
|                     SelectedPlayerCharacter.SubBackground = SubBackgrounds.Result[_SubBackgroundSelectedIndex]; | ||||
|                     SelectedSubBackground = SubBackgrounds.Result[_SubBackgroundSelectedIndex]; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         private SubBackgroundItem _SelectedSubBackground = null; | ||||
|         public SubBackgroundItem SelectedSubBackground | ||||
|         { | ||||
|             get | ||||
|             { | ||||
|                 return _SelectedSubBackground; | ||||
|             } | ||||
|             set | ||||
|             { | ||||
|                 SetProperty(ref _SelectedSubBackground, value); | ||||
|                 SelectedSubBackgroundChanged(); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         private void SelectedSubBackgroundChanged() | ||||
|         { | ||||
|             if (SelectedPlayerCharacter.SubBackground == null) | ||||
|             SelectedPlayerCharacter.SubBackground = SelectedSubBackground; | ||||
|             if (SelectedSubBackground == null) | ||||
|             { | ||||
|                 SubBackgroundSpecialties = null; | ||||
|                 SelectedPlayerCharacter.SubBackgroundSkill = null; | ||||
|  | @ -250,8 +296,8 @@ namespace AideDeJeu.ViewModels | |||
|             } | ||||
|             else | ||||
|             { | ||||
|                 SubBackgroundSpecialties = new NotifyTaskCompletion<BackgroundSpecialtyItem>(Task.Run(() => LoadBackgroundsSpecialtiesAsync(SelectedPlayerCharacter.SubBackground))); | ||||
|                 Task.Run(async () => SelectedPlayerCharacter.SubBackgroundSkill = await LoadSkillAsync(SelectedPlayerCharacter.SubBackground)); | ||||
|                 SubBackgroundSpecialties = new NotifyTaskCompletion<BackgroundSpecialtyItem>(Task.Run(() => LoadBackgroundsSpecialtiesAsync(SelectedSubBackground))); | ||||
|                 Task.Run(async () => SelectedPlayerCharacter.SubBackgroundSkill = await LoadSkillAsync(SelectedSubBackground)); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|  | @ -267,6 +313,20 @@ namespace AideDeJeu.ViewModels | |||
|                 SetProperty(ref _PersonalityTraits, value); | ||||
|             } | ||||
|         } | ||||
|         private string _SelectedPersonalityTrait = null; | ||||
|         public string SelectedPersonalityTrait | ||||
|         { | ||||
|             get | ||||
|             { | ||||
|                 return _SelectedPersonalityTrait; | ||||
|             } | ||||
|             private set | ||||
|             { | ||||
|                 SetProperty(ref _SelectedPersonalityTrait, value); | ||||
|                 SelectedPlayerCharacter.PersonalityTrait = value; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         private NotifyTaskCompletion<List<string>> _PersonalityIdeals = null; | ||||
|         public NotifyTaskCompletion<List<string>> PersonalityIdeals | ||||
|         { | ||||
|  | @ -279,6 +339,20 @@ namespace AideDeJeu.ViewModels | |||
|                 SetProperty(ref _PersonalityIdeals, value); | ||||
|             } | ||||
|         } | ||||
|         private string _SelectedPersonalityIdeal = null; | ||||
|         public string SelectedPersonalityIdeal | ||||
|         { | ||||
|             get | ||||
|             { | ||||
|                 return _SelectedPersonalityIdeal; | ||||
|             } | ||||
|             private set | ||||
|             { | ||||
|                 SetProperty(ref _SelectedPersonalityIdeal, value); | ||||
|                 SelectedPlayerCharacter.PersonalityIdeal = value; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         private NotifyTaskCompletion<List<string>> _PersonalityLinks = null; | ||||
|         public NotifyTaskCompletion<List<string>> PersonalityLinks | ||||
|         { | ||||
|  | @ -291,6 +365,20 @@ namespace AideDeJeu.ViewModels | |||
|                 SetProperty(ref _PersonalityLinks, value); | ||||
|             } | ||||
|         } | ||||
|         private string _SelectedPersonalityLink = null; | ||||
|         public string SelectedPersonalityLink | ||||
|         { | ||||
|             get | ||||
|             { | ||||
|                 return _SelectedPersonalityLink; | ||||
|             } | ||||
|             private set | ||||
|             { | ||||
|                 SetProperty(ref _SelectedPersonalityLink, value); | ||||
|                 SelectedPlayerCharacter.PersonalityLink = value; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         private NotifyTaskCompletion<List<string>> _PersonalityDefects = null; | ||||
|         public NotifyTaskCompletion<List<string>> PersonalityDefects | ||||
|         { | ||||
|  | @ -303,6 +391,20 @@ namespace AideDeJeu.ViewModels | |||
|                 SetProperty(ref _PersonalityDefects, value); | ||||
|             } | ||||
|         } | ||||
|         private string _SelectedPersonalityDefect = null; | ||||
|         public string SelectedPersonalityDefect | ||||
|         { | ||||
|             get | ||||
|             { | ||||
|                 return _SelectedPersonalityDefect; | ||||
|             } | ||||
|             private set | ||||
|             { | ||||
|                 SetProperty(ref _SelectedPersonalityDefect, value); | ||||
|                 SelectedPlayerCharacter.PersonalityDefect = value; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         private NotifyTaskCompletion<BackgroundSpecialtyItem> _BackgroundSpecialties = null; | ||||
|         public NotifyTaskCompletion<BackgroundSpecialtyItem> BackgroundSpecialties | ||||
|         { | ||||
|  | @ -476,7 +578,7 @@ namespace AideDeJeu.ViewModels | |||
|                 return new List<SubBackgroundItem>(); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         /* | ||||
|         public ICommand BackgroundSpecialtyPickerCommand | ||||
|         { | ||||
|             get | ||||
|  | @ -495,7 +597,7 @@ namespace AideDeJeu.ViewModels | |||
|         { | ||||
|             get | ||||
|             { | ||||
|                 return new Command<List<string>>(async (strings) => SelectedPlayerCharacter.PersonalityTrait = await ExecuteStringPickerCommandAsync(strings)); | ||||
|                 return new Command<List<string>>(async (strings) => SelectedPersonalityTrait = await ExecuteStringPickerCommandAsync(strings)); | ||||
|             } | ||||
|         } | ||||
|         public ICommand PersonalityIdealPickerCommand | ||||
|  | @ -524,7 +626,8 @@ namespace AideDeJeu.ViewModels | |||
|                 return new Command<List<string>>(async (strings) => SelectedPlayerCharacter.PersonalityDefect = await ExecuteStringPickerCommandAsync(strings)); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         */ | ||||
|         /* | ||||
|         private async Task<string> ExecuteStringPickerCommandAsync(List<string> strings) | ||||
|         { | ||||
|             var picker = new Views.StringPicker(); | ||||
|  | @ -535,6 +638,7 @@ namespace AideDeJeu.ViewModels | |||
|             await Main.Navigator.Navigation.PopModalAsync(true); | ||||
|             return result; | ||||
|         } | ||||
|         */ | ||||
|         #endregion Background | ||||
| 
 | ||||
|         #region Abilities | ||||
|  |  | |||
							
								
								
									
										31
									
								
								AideDeJeu/AideDeJeu/Views/ItemPicker.xaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								AideDeJeu/AideDeJeu/Views/ItemPicker.xaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,31 @@ | |||
| <?xml version="1.0" encoding="utf-8" ?> | ||||
| <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" | ||||
|              xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" | ||||
|              xmlns:mdview="clr-namespace:Xam.Forms.Markdown" | ||||
|              xmlns:tools="clr-namespace:AideDeJeu.Tools" | ||||
|              x:Class="AideDeJeu.Views.ItemPicker" | ||||
|              Title="{Binding Title}"> | ||||
|     <ContentPage.Resources> | ||||
|         <ResourceDictionary> | ||||
|             <tools:MonsterMarkdownTheme x:Key="MonsterMarkdownTheme" /> | ||||
|             <tools:NullToFalseConverter x:Key="NullToFalseConverter" /> | ||||
|         </ResourceDictionary> | ||||
|     </ContentPage.Resources> | ||||
|     <ContentPage.Content> | ||||
|         <ListView ItemsSource="{Binding Items}" HasUnevenRows="True" SelectedItem="{Binding SelectedItem, Mode=TwoWay}"> | ||||
|             <ListView.Header> | ||||
|                 <StackLayout> | ||||
|                     <mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" HorizontalOptions="FillAndExpand" Markdown="{Binding Title, StringFormat='# {0}'}" /> | ||||
|                     <mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" HorizontalOptions="FillAndExpand" Markdown="{Binding Description}" /> | ||||
|                 </StackLayout> | ||||
|             </ListView.Header> | ||||
|             <ListView.ItemTemplate> | ||||
|                 <DataTemplate> | ||||
|                     <ViewCell> | ||||
|                         <mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" HorizontalOptions="FillAndExpand" Markdown="{Binding Name}" /> | ||||
|                     </ViewCell> | ||||
|                 </DataTemplate> | ||||
|             </ListView.ItemTemplate> | ||||
|         </ListView> | ||||
|     </ContentPage.Content> | ||||
| </ContentPage> | ||||
							
								
								
									
										24
									
								
								AideDeJeu/AideDeJeu/Views/ItemPicker.xaml.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								AideDeJeu/AideDeJeu/Views/ItemPicker.xaml.cs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| using AideDeJeu.ViewModels; | ||||
| using AideDeJeuLib; | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Linq; | ||||
| using System.Text; | ||||
| using System.Threading.Tasks; | ||||
| 
 | ||||
| using Xamarin.Forms; | ||||
| using Xamarin.Forms.Xaml; | ||||
| 
 | ||||
| namespace AideDeJeu.Views | ||||
| { | ||||
|     [XamlCompilation(XamlCompilationOptions.Compile)] | ||||
|     public partial class ItemPicker : ContentPage | ||||
|     { | ||||
|         public PickerViewModel<Item> ViewModel { get; set; } = new PickerViewModel<Item>(); | ||||
|         public ItemPicker() | ||||
|         { | ||||
|             InitializeComponent(); | ||||
|             BindingContext = ViewModel; | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										40
									
								
								AideDeJeu/AideDeJeu/Views/ItemPickerView.xaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								AideDeJeu/AideDeJeu/Views/ItemPickerView.xaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,40 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <StackLayout xmlns="http://xamarin.com/schemas/2014/forms"  | ||||
|              xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" | ||||
|         xmlns:tools="clr-namespace:AideDeJeu.Tools" | ||||
|         xmlns:mdview="clr-namespace:Xam.Forms.Markdown" | ||||
|              x:Class="AideDeJeu.Views.ItemPickerView" | ||||
|              x:Name="this"> | ||||
|     <StackLayout.Resources> | ||||
|         <ResourceDictionary> | ||||
|             <tools:MonsterMarkdownTheme x:Key="MonsterMarkdownTheme" /> | ||||
|             <tools:NullToFalseConverter x:Key="NullToFalseConverter" /> | ||||
|         </ResourceDictionary> | ||||
|     </StackLayout.Resources> | ||||
|     <Frame BorderColor="Black" Padding="2"> | ||||
|         <Grid> | ||||
|             <Grid.ColumnDefinitions> | ||||
|                 <ColumnDefinition Width="auto" /> | ||||
|                 <ColumnDefinition Width="*" /> | ||||
|                 <ColumnDefinition Width="auto" /> | ||||
|                 <ColumnDefinition Width="10" /> | ||||
|             </Grid.ColumnDefinitions> | ||||
|             <mdview:MarkdownView Grid.Column="0" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Title, Source={x:Reference this}, StringFormat='# {0}'}" IsEnabled="False" /> | ||||
|             <mdview:MarkdownView Grid.Column="1" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding SelectedItem.Name, Source={x:Reference this}, StringFormat='# : {0}'}" /> | ||||
|             <Image Grid.Column="2" WidthRequest="32" HeightRequest="32" Source="click.png" /> | ||||
|             <mdview:MarkdownView Grid.Row="1" Grid.ColumnSpan="3" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding SelectedItem.Description, Source={x:Reference this}}" /> | ||||
|         </Grid> | ||||
|     </Frame> | ||||
|     <!--<mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding SelectedItem, Source={x:Reference this}}" />--> | ||||
|     <!--<StackLayout BindableLayout.ItemsSource="{Binding ItemsSource, Source={x:Reference this}}"> | ||||
|         <BindableLayout.ItemTemplate> | ||||
|             <DataTemplate> | ||||
|                 <Label Text="{Binding}" /> | ||||
|             </DataTemplate> | ||||
|         </BindableLayout.ItemTemplate> | ||||
|     </StackLayout>--> | ||||
|     <StackLayout.GestureRecognizers> | ||||
|         <ClickGestureRecognizer Command="{Binding PickerCommand, Source={x:Reference this}}" CommandParameter="{Binding ItemsSource, Source={x:Reference this}}" /> | ||||
|         <TapGestureRecognizer Command="{Binding PickerCommand, Source={x:Reference this}}" CommandParameter="{Binding ItemsSource, Source={x:Reference this}}" /> | ||||
|     </StackLayout.GestureRecognizers> | ||||
| </StackLayout> | ||||
							
								
								
									
										101
									
								
								AideDeJeu/AideDeJeu/Views/ItemPickerView.xaml.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								AideDeJeu/AideDeJeu/Views/ItemPickerView.xaml.cs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,101 @@ | |||
| using AideDeJeu.ViewModels; | ||||
| using AideDeJeuLib; | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Linq; | ||||
| using System.Text; | ||||
| using System.Threading.Tasks; | ||||
| using System.Windows.Input; | ||||
| using Xamarin.Forms; | ||||
| using Xamarin.Forms.Xaml; | ||||
| 
 | ||||
| namespace AideDeJeu.Views | ||||
| { | ||||
|     [XamlCompilation(XamlCompilationOptions.Compile)] | ||||
|     public partial class ItemPickerView : StackLayout | ||||
|     { | ||||
|         public MainViewModel Main | ||||
|         { | ||||
|             get | ||||
|             { | ||||
|                 return DependencyService.Get<MainViewModel>(); | ||||
|             } | ||||
|         } | ||||
|         public ItemPickerView() | ||||
|         { | ||||
|             InitializeComponent(); | ||||
|             BindingContext = this; | ||||
|         } | ||||
| 
 | ||||
|         public string Title | ||||
|         { | ||||
|             get { return (string)GetValue(TitleProperty); } | ||||
|             set { SetValue(TitleProperty, value); } | ||||
|         } | ||||
|         public static readonly BindableProperty TitleProperty = BindableProperty.Create( | ||||
|             nameof(Title),  | ||||
|             typeof(string),  | ||||
|             typeof(ItemPickerView), | ||||
|             defaultValue: default(string)); | ||||
| 
 | ||||
|         public string Description | ||||
|         { | ||||
|             get { return (string)GetValue(DescriptionProperty); } | ||||
|             set { SetValue(DescriptionProperty, value); } | ||||
|         } | ||||
|         public static readonly BindableProperty DescriptionProperty = BindableProperty.Create( | ||||
|             nameof(Description), | ||||
|             typeof(string), | ||||
|             typeof(ItemPickerView), | ||||
|             defaultValue: default(string)); | ||||
| 
 | ||||
|         public Item SelectedItem | ||||
|         { | ||||
|             get { return (Item)GetValue(SelectedItemProperty); } | ||||
|             set { SetValue(SelectedItemProperty, value); } | ||||
|         } | ||||
|         public static readonly BindableProperty SelectedItemProperty = BindableProperty.Create( | ||||
|             nameof(SelectedItem),  | ||||
|             typeof(Item),  | ||||
|             typeof(ItemPickerView),  | ||||
|             defaultValue: default(Item),  | ||||
|             defaultBindingMode: BindingMode.TwoWay); | ||||
| 
 | ||||
|         public System.Collections.IEnumerable ItemsSource | ||||
|         { | ||||
|             get { return (System.Collections.IEnumerable)GetValue(ItemsSourceProperty); } | ||||
|             set { SetValue(ItemsSourceProperty, value); } | ||||
|         } | ||||
|         //public static readonly BindableProperty ItemsSourceProperty = BindableProperty.Create( | ||||
|         //    nameof(ItemsSource),  | ||||
|         //    typeof(System.Collections.IList),  | ||||
|         //    typeof(StringPickerView), | ||||
|         //    defaultValue: new List<string>()); | ||||
|         public static readonly BindableProperty ItemsSourceProperty = | ||||
|             BindableProperty.Create( | ||||
|                 nameof(ItemsSource),  | ||||
|                 typeof(System.Collections.IEnumerable),  | ||||
|                 typeof(ItemPickerView),  | ||||
|                 default(System.Collections.IEnumerable)); | ||||
| 
 | ||||
|         public ICommand PickerCommand | ||||
|         { | ||||
|             get | ||||
|             { | ||||
|                 return new Command<System.Collections.IList>(async (items) => SelectedItem = await ExecuteItemPickerCommandAsync(items)); | ||||
|             } | ||||
|         } | ||||
|         private async Task<Item> ExecuteItemPickerCommandAsync(System.Collections.IEnumerable items) | ||||
|         { | ||||
|             var picker = new Views.ItemPicker(); | ||||
|             var vm = picker.ViewModel; | ||||
|             vm.Title = Title; | ||||
|             vm.Description = Description; | ||||
|             vm.Items = items; | ||||
|             await Main.Navigator.Navigation.PushModalAsync(picker, true); | ||||
|             var result = await vm.PickValueAsync(); | ||||
|             await Main.Navigator.Navigation.PopModalAsync(true); | ||||
|             return result; | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | @ -23,8 +23,10 @@ | |||
|         <ScrollView Orientation="Vertical"> | ||||
|             <StackLayout> | ||||
|                 <Entry Placeholder="Nom" Text="{Binding Name}" Keyboard="Text" /> | ||||
|                 <Picker Title="Alignement" HorizontalOptions="FillAndExpand" IsEnabled="{Binding Alignments.IsSuccessfullyCompleted}" ItemsSource="{Binding Alignments.Result}" ItemDisplayBinding="{Binding Name}" SelectedIndex="{Binding AlignmentSelectedIndex, Mode=TwoWay}" /> | ||||
|                 <mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding SelectedPlayerCharacter.Alignment.Description}" /> | ||||
|                 <!--<Picker Title="Alignement" HorizontalOptions="FillAndExpand" IsEnabled="{Binding Alignments.IsSuccessfullyCompleted}" ItemsSource="{Binding Alignments.Result}" ItemDisplayBinding="{Binding Name}" SelectedIndex="{Binding AlignmentSelectedIndex, Mode=TwoWay}" />--> | ||||
|                 <views:ItemPickerView BindingContext="{Binding}" IsEnabled="{Binding Alignments.IsSuccessfullyCompleted}" Title="Alignement" ItemsSource="{Binding Alignments.Result}" SelectedItem="{Binding SelectedAlignment, Mode=TwoWay}" /> | ||||
| 
 | ||||
|                 <!--<mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding SelectedPlayerCharacter.Alignment.Description}" />--> | ||||
|                 <Picker Title="Niveau" HorizontalOptions="FillAndExpand" ItemsSource="{Binding Levels}" ItemDisplayBinding="{Binding StringFormat='Niveau : {0}'}" /> | ||||
|             </StackLayout> | ||||
|         </ScrollView> | ||||
|  | @ -48,19 +50,32 @@ | |||
|     <ContentPage Title="Historique"> | ||||
|         <ScrollView Orientation="Vertical"> | ||||
|             <StackLayout> | ||||
|                 <Picker Title="Historique" HorizontalOptions="FillAndExpand" IsEnabled="{Binding Backgrounds.IsSuccessfullyCompleted}" ItemsSource="{Binding Backgrounds.Result}" ItemDisplayBinding="{Binding Name}" SelectedIndex="{Binding BackgroundSelectedIndex, Mode=TwoWay}" /> | ||||
|                 <!--<Picker Title="Historique" HorizontalOptions="FillAndExpand" IsEnabled="{Binding Backgrounds.IsSuccessfullyCompleted}" ItemsSource="{Binding Backgrounds.Result}" ItemDisplayBinding="{Binding Name}" SelectedIndex="{Binding BackgroundSelectedIndex, Mode=TwoWay}" />--> | ||||
|                 <views:ItemPickerView BindingContext="{Binding}" Title="Historique" ItemsSource="{Binding Backgrounds.Result}" SelectedItem="{Binding SelectedBackground, Mode=TwoWay}" /> | ||||
| 
 | ||||
|                 <Picker Title="Variante" HorizontalOptions="FillAndExpand" IsEnabled="{Binding SubBackgrounds.IsSuccessfullyCompleted}" ItemsSource="{Binding SubBackgrounds.Result}" ItemDisplayBinding="{Binding Name}" SelectedIndex="{Binding SubBackgroundSelectedIndex, Mode=TwoWay}" /> | ||||
|                 <!--<Picker Title="Variante" HorizontalOptions="FillAndExpand" IsEnabled="{Binding SubBackgrounds.IsSuccessfullyCompleted}" ItemsSource="{Binding SubBackgrounds.Result}" ItemDisplayBinding="{Binding Name}" SelectedIndex="{Binding SubBackgroundSelectedIndex, Mode=TwoWay}" />--> | ||||
|                 <views:ItemPickerView BindingContext="{Binding}" Title="Variante" ItemsSource="{Binding SubBackgrounds.Result}" SelectedItem="{Binding SelectedSubBackground, Mode=TwoWay}" /> | ||||
| 
 | ||||
|                 <mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding SelectedPlayerCharacter.Background.Description}" /> | ||||
|                 <!--<mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding SelectedPlayerCharacter.Background.Description}" /> | ||||
| 
 | ||||
|                 <mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding SelectedPlayerCharacter.SubBackground.Description}" />--> | ||||
| 
 | ||||
|                 <Frame BorderColor="Black" Padding="2"> | ||||
|                     <StackLayout Padding="0"> | ||||
|                         <mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.SelectedBackgroundSkill.Name, StringFormat='# {0}'}" /> | ||||
|                         <mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.SelectedBackgroundSkill.Description}" /> | ||||
|                     </StackLayout> | ||||
|                 </Frame> | ||||
|                 <!--<mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.SelectedBackgroundSkill.Name, StringFormat='# {0}'}" />--> | ||||
|                 <!--<mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.SelectedBackgroundSkill.Description}" />--> | ||||
| 
 | ||||
|                 <mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding SelectedPlayerCharacter.SubBackground.Description}" /> | ||||
|                  | ||||
|                 <mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.SelectedBackgroundSkill.Name, StringFormat='# {0}'}" /> | ||||
|                 <mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.SelectedBackgroundSkill.Description}" /> | ||||
|                  | ||||
|                 <views:StringPickerView BindingContext="{Binding}" Title="{Binding SelectedBackgroundSpecialties.Result.Name}" Description="{Binding SelectedBackgroundSpecialties.Result.Description}" ItemsSource="{Binding SelectedBackgroundSpecialties.Result.BindableTable}" SelectedItem="{Binding SelectedPlayerCharacter.PickedBackgroundSpecialty, Mode=TwoWay}" /> | ||||
|                 <mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PickedBackgroundSpecialty}" /> | ||||
| 
 | ||||
|                  | ||||
|                  | ||||
|                 <!--SelectedItem="{Binding SelectedPlayerCharacter.SelectedBackgroundSpecialty, Mode=TwoWay}"--> | ||||
|                 <!--<mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" IsVisible="{Binding PersonalityTraits.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityTrait}" /> | ||||
|                 <Button Visual="Material" IsVisible="{Binding SelectedBackgroundSpecialties.IsSuccessfullyCompleted}" Text="Spécialité" Command="{Binding BackgroundSpecialtyPickerCommand}" CommandParameter="{Binding SelectedBackgroundSpecialties.Result}" /> | ||||
|  | @ -80,16 +95,16 @@ | |||
| 
 | ||||
|                 <!--<views:StringPickerView Title="Trait de personnalité" IsVisible="{Binding PersonalityTraits.IsSuccessfullyCompleted}" ItemsSource="{Binding PersonalityTraits.Result}" />--> | ||||
|                 <views:StringPickerView BindingContext="{Binding}" Title="Trait de personnalité" IsVisible="{Binding PersonalityTraits.IsSuccessfullyCompleted}" ItemsSource="{Binding PersonalityTraits.Result}" SelectedItem="{Binding SelectedPlayerCharacter.PersonalityTrait, Mode=TwoWay}" /> | ||||
|                 <mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" IsVisible="{Binding PersonalityTraits.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityTrait}" /> | ||||
|                 <!--<mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" IsVisible="{Binding PersonalityTraits.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityTrait}" />--> | ||||
| 
 | ||||
|                 <views:StringPickerView BindingContext="{Binding}" Title="Idéal" IsVisible="{Binding PersonalityIdeals.IsSuccessfullyCompleted}" ItemsSource="{Binding PersonalityIdeals.Result}" SelectedItem="{Binding SelectedPlayerCharacter.PersonalityIdeal, Mode=TwoWay}" /> | ||||
|                 <mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" IsVisible="{Binding PersonalityIdeals.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityIdeal}" /> | ||||
|                 <!--<mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" IsVisible="{Binding PersonalityIdeals.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityIdeal}" />--> | ||||
| 
 | ||||
|                 <views:StringPickerView BindingContext="{Binding}" Title="Lien" IsVisible="{Binding PersonalityLinks.IsSuccessfullyCompleted}" ItemsSource="{Binding PersonalityLinks.Result}" SelectedItem="{Binding SelectedPlayerCharacter.PersonalityLink, Mode=TwoWay}" /> | ||||
|                 <mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" IsVisible="{Binding PersonalityLinks.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityLink}" /> | ||||
|                 <!--<mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" IsVisible="{Binding PersonalityLinks.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityLink}" />--> | ||||
| 
 | ||||
|                 <views:StringPickerView BindingContext="{Binding}" Title="Défaut" IsVisible="{Binding PersonalityDefects.IsSuccessfullyCompleted}" ItemsSource="{Binding PersonalityDefects.Result}" SelectedItem="{Binding SelectedPlayerCharacter.PersonalityDefect, Mode=TwoWay}" /> | ||||
|                 <mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" IsVisible="{Binding PersonalityDefects.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityDefect}" /> | ||||
|                 <!--<mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" IsVisible="{Binding PersonalityDefects.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityDefect}" />--> | ||||
| 
 | ||||
|                 <!--<Button Visual="Material" IsVisible="{Binding PersonalityIdeals.IsSuccessfullyCompleted}" Text="Idéal" Command="{Binding PersonalityIdealPickerCommand}" CommandParameter="{Binding PersonalityIdeals.Result}" /> | ||||
|                 <mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" IsVisible="{Binding PersonalityIdeals.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityIdeal}" /> | ||||
|  |  | |||
|  | @ -20,6 +20,7 @@ | |||
|             </Grid.ColumnDefinitions> | ||||
|             <mdview:MarkdownView Grid.Column="0" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding Title, Source={x:Reference this}, StringFormat='# {0}'}" IsEnabled="False" /> | ||||
|             <Image Grid.Column="1" WidthRequest="32" HeightRequest="32" Source="click.png" /> | ||||
|             <mdview:MarkdownView Grid.Row="1" Grid.ColumnSpan="2" Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding SelectedItem, Source={x:Reference this}}" /> | ||||
|         </Grid> | ||||
|     </Frame> | ||||
|     <!--<mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding SelectedItem, Source={x:Reference this}}" />--> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Yan Maniez
						Yan Maniez