diff --git a/AideDeJeu/AideDeJeu/AideDeJeu.csproj b/AideDeJeu/AideDeJeu/AideDeJeu.csproj
index aba5a5a2..184f06f3 100644
--- a/AideDeJeu/AideDeJeu/AideDeJeu.csproj
+++ b/AideDeJeu/AideDeJeu/AideDeJeu.csproj
@@ -100,6 +100,9 @@
MSBuild:UpdateDesignTimeXaml
+
+ MSBuild:UpdateDesignTimeXaml
+
MSBuild:UpdateDesignTimeXaml
diff --git a/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs b/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs
index 345952fa..cacdc220 100644
--- a/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs
+++ b/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs
@@ -18,7 +18,7 @@ namespace AideDeJeu.ViewModels
}
public class Navigator : BaseViewModel, INavigator
{
- INavigation Navigation;
+ public INavigation Navigation;
public Navigator(INavigation navigation)
{
diff --git a/AideDeJeu/AideDeJeu/ViewModels/PickerViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/PickerViewModel.cs
new file mode 100644
index 00000000..018621f8
--- /dev/null
+++ b/AideDeJeu/AideDeJeu/ViewModels/PickerViewModel.cs
@@ -0,0 +1,47 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AideDeJeu.ViewModels
+{
+ public class PickerViewModel : BaseViewModel where T:class
+ {
+ private List _Items = null;
+ public List Items
+ {
+ get
+ {
+ return _Items;
+ }
+ set
+ {
+ SetProperty(ref _Items, value);
+ }
+ }
+
+ private T _SelectedItem = null;
+ public T SelectedItem
+ {
+ get
+ {
+ return _SelectedItem;
+ }
+ set
+ {
+ SetProperty(ref _SelectedItem, value);
+ if (_taskCompletionSource != null)
+ {
+ _taskCompletionSource.SetResult(value);
+ _taskCompletionSource = null;
+ }
+ }
+ }
+ private TaskCompletionSource _taskCompletionSource;
+ public Task PickValueAsync()
+ {
+ _taskCompletionSource = new TaskCompletionSource();
+ return _taskCompletionSource.Task;
+ }
+ }
+}
diff --git a/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacterEditorViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacterEditorViewModel.cs
index 104fd90a..2b846920 100644
--- a/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacterEditorViewModel.cs
+++ b/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacterEditorViewModel.cs
@@ -3,9 +3,12 @@ using AideDeJeuLib;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
+using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using System.Windows.Input;
+using Xamarin.Forms;
namespace AideDeJeu.ViewModels
{
@@ -133,12 +136,12 @@ namespace AideDeJeu.ViewModels
set
{
SetProperty(ref _SubBackgroundSelectedIndex, value);
- if(_SubBackgroundSelectedIndex == 0)
+ if (_SubBackgroundSelectedIndex == 0)
{
SelectedPlayerCharacter.SubBackground = null;
SubBackgroundSelectedIndex = -1;
}
- else if(_SubBackgroundSelectedIndex > 0)
+ else if (_SubBackgroundSelectedIndex > 0)
{
SelectedPlayerCharacter.SubBackground = SubBackgrounds.Result[_SubBackgroundSelectedIndex];
}
@@ -178,12 +181,13 @@ namespace AideDeJeu.ViewModels
var table = item.Table;
var lines = table.Split('\n');
var result = new List();
- foreach(var line in lines.Skip(2))
+ foreach (var line in lines.Skip(2))
{
if (line.StartsWith("|"))
{
var cols = line.Split('|');
- result.Add(cols[2]);
+ var text = cols[2].Replace("", " ").Replace(" ", " ");
+ result.Add(text);
}
}
return result;
@@ -211,6 +215,25 @@ namespace AideDeJeu.ViewModels
return new List();
}
}
+
+ public ICommand StringPickerCommand
+ {
+ get
+ {
+ return new Command>(async (strings) => await ExecuteStringPickerCommandAsync(strings));
+ }
+ }
+
+ private async Task ExecuteStringPickerCommandAsync(List strings)
+ {
+ var picker = new Views.StringPicker();
+ var vm = picker.ViewModel;
+ vm.Items = strings;
+ await Main.Navigator.Navigation.PushModalAsync(picker, true);
+ var result = await vm.PickValueAsync();
+ await Main.Navigator.Navigation.PopModalAsync(true);
+ SelectedPlayerCharacter.PersonalityTrait = result;
+ }
#endregion Background
#region Abilities
diff --git a/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacterViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacterViewModel.cs
index 264faef3..b5794fde 100644
--- a/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacterViewModel.cs
+++ b/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacterViewModel.cs
@@ -55,5 +55,17 @@ namespace AideDeJeu.ViewModels
SetProperty(ref _SubBackground, value);
}
}
+ private string _PersonalityTrait = null;
+ public string PersonalityTrait
+ {
+ get
+ {
+ return _PersonalityTrait;
+ }
+ set
+ {
+ SetProperty(ref _PersonalityTrait, value);
+ }
+ }
}
}
diff --git a/AideDeJeu/AideDeJeu/Views/PlayerCharacterEditorPage.xaml b/AideDeJeu/AideDeJeu/Views/PlayerCharacterEditorPage.xaml
index 748f1387..cb5fa27e 100644
--- a/AideDeJeu/AideDeJeu/Views/PlayerCharacterEditorPage.xaml
+++ b/AideDeJeu/AideDeJeu/Views/PlayerCharacterEditorPage.xaml
@@ -58,7 +58,9 @@
-
+
+
+
diff --git a/AideDeJeu/AideDeJeu/Views/StringPicker.xaml b/AideDeJeu/AideDeJeu/Views/StringPicker.xaml
new file mode 100644
index 00000000..e3ba011e
--- /dev/null
+++ b/AideDeJeu/AideDeJeu/Views/StringPicker.xaml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AideDeJeu/AideDeJeu/Views/StringPicker.xaml.cs b/AideDeJeu/AideDeJeu/Views/StringPicker.xaml.cs
new file mode 100644
index 00000000..e4a2d193
--- /dev/null
+++ b/AideDeJeu/AideDeJeu/Views/StringPicker.xaml.cs
@@ -0,0 +1,23 @@
+using AideDeJeu.ViewModels;
+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 StringPicker : ContentPage
+ {
+ public PickerViewModel ViewModel { get; set; } = new PickerViewModel();
+ public StringPicker()
+ {
+ InitializeComponent();
+ BindingContext = ViewModel;
+ }
+ }
+}
\ No newline at end of file