mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-10-30 15:06:06 +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">
|
<Compile Update="Views\MainTabbedPage.xaml.cs">
|
||||||
<DependentUpon>MainTabbedPage.xaml</DependentUpon>
|
<DependentUpon>MainTabbedPage.xaml</DependentUpon>
|
||||||
</Compile>
|
</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>
|
||||||
|
|
||||||
<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)
|
public async Task<List<AlignmentItem>> LoadAlignmentsAsync(string alignment = null)
|
||||||
{
|
{
|
||||||
|
|
@ -181,26 +197,41 @@ namespace AideDeJeu.ViewModels
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
SetProperty(ref _BackgroundSelectedIndex, value);
|
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();
|
SelectedBackgroundChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void 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.SubBackground = null;
|
||||||
SelectedPlayerCharacter.PersonalityTrait = null;
|
SelectedPlayerCharacter.PersonalityTrait = null;
|
||||||
SelectedPlayerCharacter.PersonalityIdeal = null;
|
SelectedPlayerCharacter.PersonalityIdeal = null;
|
||||||
SelectedPlayerCharacter.PersonalityLink = null;
|
SelectedPlayerCharacter.PersonalityLink = null;
|
||||||
SelectedPlayerCharacter.PersonalityDefect = null;
|
SelectedPlayerCharacter.PersonalityDefect = null;
|
||||||
SelectedPlayerCharacter.BackgroundSpecialty = 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();
|
ResetAlignments();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -229,20 +260,35 @@ namespace AideDeJeu.ViewModels
|
||||||
SetProperty(ref _SubBackgroundSelectedIndex, value);
|
SetProperty(ref _SubBackgroundSelectedIndex, value);
|
||||||
if (_SubBackgroundSelectedIndex == 0)
|
if (_SubBackgroundSelectedIndex == 0)
|
||||||
{
|
{
|
||||||
SelectedPlayerCharacter.SubBackground = null;
|
//SelectedPlayerCharacter.SubBackground = null;
|
||||||
SubBackgroundSelectedIndex = -1;
|
SubBackgroundSelectedIndex = -1;
|
||||||
|
SelectedSubBackground = null;
|
||||||
}
|
}
|
||||||
else if (_SubBackgroundSelectedIndex > 0)
|
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();
|
SelectedSubBackgroundChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SelectedSubBackgroundChanged()
|
private void SelectedSubBackgroundChanged()
|
||||||
{
|
{
|
||||||
if (SelectedPlayerCharacter.SubBackground == null)
|
SelectedPlayerCharacter.SubBackground = SelectedSubBackground;
|
||||||
|
if (SelectedSubBackground == null)
|
||||||
{
|
{
|
||||||
SubBackgroundSpecialties = null;
|
SubBackgroundSpecialties = null;
|
||||||
SelectedPlayerCharacter.SubBackgroundSkill = null;
|
SelectedPlayerCharacter.SubBackgroundSkill = null;
|
||||||
|
|
@ -250,8 +296,8 @@ namespace AideDeJeu.ViewModels
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SubBackgroundSpecialties = new NotifyTaskCompletion<BackgroundSpecialtyItem>(Task.Run(() => LoadBackgroundsSpecialtiesAsync(SelectedPlayerCharacter.SubBackground)));
|
SubBackgroundSpecialties = new NotifyTaskCompletion<BackgroundSpecialtyItem>(Task.Run(() => LoadBackgroundsSpecialtiesAsync(SelectedSubBackground)));
|
||||||
Task.Run(async () => SelectedPlayerCharacter.SubBackgroundSkill = await LoadSkillAsync(SelectedPlayerCharacter.SubBackground));
|
Task.Run(async () => SelectedPlayerCharacter.SubBackgroundSkill = await LoadSkillAsync(SelectedSubBackground));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -267,6 +313,20 @@ namespace AideDeJeu.ViewModels
|
||||||
SetProperty(ref _PersonalityTraits, value);
|
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;
|
private NotifyTaskCompletion<List<string>> _PersonalityIdeals = null;
|
||||||
public NotifyTaskCompletion<List<string>> PersonalityIdeals
|
public NotifyTaskCompletion<List<string>> PersonalityIdeals
|
||||||
{
|
{
|
||||||
|
|
@ -279,6 +339,20 @@ namespace AideDeJeu.ViewModels
|
||||||
SetProperty(ref _PersonalityIdeals, value);
|
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;
|
private NotifyTaskCompletion<List<string>> _PersonalityLinks = null;
|
||||||
public NotifyTaskCompletion<List<string>> PersonalityLinks
|
public NotifyTaskCompletion<List<string>> PersonalityLinks
|
||||||
{
|
{
|
||||||
|
|
@ -291,6 +365,20 @@ namespace AideDeJeu.ViewModels
|
||||||
SetProperty(ref _PersonalityLinks, value);
|
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;
|
private NotifyTaskCompletion<List<string>> _PersonalityDefects = null;
|
||||||
public NotifyTaskCompletion<List<string>> PersonalityDefects
|
public NotifyTaskCompletion<List<string>> PersonalityDefects
|
||||||
{
|
{
|
||||||
|
|
@ -303,6 +391,20 @@ namespace AideDeJeu.ViewModels
|
||||||
SetProperty(ref _PersonalityDefects, value);
|
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;
|
private NotifyTaskCompletion<BackgroundSpecialtyItem> _BackgroundSpecialties = null;
|
||||||
public NotifyTaskCompletion<BackgroundSpecialtyItem> BackgroundSpecialties
|
public NotifyTaskCompletion<BackgroundSpecialtyItem> BackgroundSpecialties
|
||||||
{
|
{
|
||||||
|
|
@ -476,7 +578,7 @@ namespace AideDeJeu.ViewModels
|
||||||
return new List<SubBackgroundItem>();
|
return new List<SubBackgroundItem>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
public ICommand BackgroundSpecialtyPickerCommand
|
public ICommand BackgroundSpecialtyPickerCommand
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|
@ -495,7 +597,7 @@ namespace AideDeJeu.ViewModels
|
||||||
{
|
{
|
||||||
get
|
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
|
public ICommand PersonalityIdealPickerCommand
|
||||||
|
|
@ -524,7 +626,8 @@ namespace AideDeJeu.ViewModels
|
||||||
return new Command<List<string>>(async (strings) => SelectedPlayerCharacter.PersonalityDefect = await ExecuteStringPickerCommandAsync(strings));
|
return new Command<List<string>>(async (strings) => SelectedPlayerCharacter.PersonalityDefect = await ExecuteStringPickerCommandAsync(strings));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
/*
|
||||||
private async Task<string> ExecuteStringPickerCommandAsync(List<string> strings)
|
private async Task<string> ExecuteStringPickerCommandAsync(List<string> strings)
|
||||||
{
|
{
|
||||||
var picker = new Views.StringPicker();
|
var picker = new Views.StringPicker();
|
||||||
|
|
@ -535,6 +638,7 @@ namespace AideDeJeu.ViewModels
|
||||||
await Main.Navigator.Navigation.PopModalAsync(true);
|
await Main.Navigator.Navigation.PopModalAsync(true);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
#endregion Background
|
#endregion Background
|
||||||
|
|
||||||
#region Abilities
|
#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">
|
<ScrollView Orientation="Vertical">
|
||||||
<StackLayout>
|
<StackLayout>
|
||||||
<Entry Placeholder="Nom" Text="{Binding Name}" Keyboard="Text" />
|
<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}" />
|
<!--<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}" />
|
<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}'}" />
|
<Picker Title="Niveau" HorizontalOptions="FillAndExpand" ItemsSource="{Binding Levels}" ItemDisplayBinding="{Binding StringFormat='Niveau : {0}'}" />
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|
@ -48,19 +50,32 @@
|
||||||
<ContentPage Title="Historique">
|
<ContentPage Title="Historique">
|
||||||
<ScrollView Orientation="Vertical">
|
<ScrollView Orientation="Vertical">
|
||||||
<StackLayout>
|
<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}" />
|
<mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding SelectedPlayerCharacter.SubBackground.Description}" />-->
|
||||||
|
|
||||||
<mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.SelectedBackgroundSkill.Name, StringFormat='# {0}'}" />
|
<Frame BorderColor="Black" Padding="2">
|
||||||
<mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.SelectedBackgroundSkill.Description}" />
|
<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}" />-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<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}" />
|
<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}" />
|
<mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PickedBackgroundSpecialty}" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--SelectedItem="{Binding SelectedPlayerCharacter.SelectedBackgroundSpecialty, Mode=TwoWay}"-->
|
<!--SelectedItem="{Binding SelectedPlayerCharacter.SelectedBackgroundSpecialty, 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}" />
|
||||||
<Button Visual="Material" IsVisible="{Binding SelectedBackgroundSpecialties.IsSuccessfullyCompleted}" Text="Spécialité" Command="{Binding BackgroundSpecialtyPickerCommand}" CommandParameter="{Binding SelectedBackgroundSpecialties.Result}" />
|
<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 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}" />
|
<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}" />
|
<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}" />
|
<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}" />
|
<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}" />
|
<!--<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}" />
|
<mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" IsVisible="{Binding PersonalityIdeals.IsSuccessfullyCompleted}" HorizontalOptions="FillAndExpand" Markdown="{Binding SelectedPlayerCharacter.PersonalityIdeal}" />
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@
|
||||||
</Grid.ColumnDefinitions>
|
</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="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" />
|
<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>
|
</Grid>
|
||||||
</Frame>
|
</Frame>
|
||||||
<!--<mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding SelectedItem, Source={x:Reference this}}" />-->
|
<!--<mdview:MarkdownView Theme="{StaticResource MonsterMarkdownTheme}" Markdown="{Binding SelectedItem, Source={x:Reference this}}" />-->
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue