diff --git a/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacterEditorViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacterEditorViewModel.cs index c9f546ad..198f62c0 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacterEditorViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacterEditorViewModel.cs @@ -241,8 +241,17 @@ namespace AideDeJeu.ViewModels private void SelectedSubBackgroundChanged() { - SubBackgroundSpecialties = new NotifyTaskCompletion>(Task.Run(() => LoadBackgroundsSpecialtiesAsync(SelectedPlayerCharacter.SubBackground))); - Task.Run(async () => SelectedPlayerCharacter.SubBackgroundSkill = await LoadSkillAsync(SelectedPlayerCharacter.SubBackground)); + if (SelectedPlayerCharacter.SubBackground == null) + { + SubBackgroundSpecialties = null; + SelectedPlayerCharacter.SubBackgroundSkill = null; + SelectedPlayerCharacter.SubBackgroundSpecialty = null; + } + else + { + SubBackgroundSpecialties = new NotifyTaskCompletion>(Task.Run(() => LoadBackgroundsSpecialtiesAsync(SelectedPlayerCharacter.SubBackground))); + Task.Run(async () => SelectedPlayerCharacter.SubBackgroundSkill = await LoadSkillAsync(SelectedPlayerCharacter.SubBackground)); + } } private NotifyTaskCompletion> _PersonalityTraits = null; @@ -303,6 +312,7 @@ namespace AideDeJeu.ViewModels private set { SetProperty(ref _BackgroundSpecialties, value); + OnPropertyChanged(nameof(SelectedBackgroundSpecialties)); } } private NotifyTaskCompletion> _SubBackgroundSpecialties = null; @@ -315,6 +325,14 @@ namespace AideDeJeu.ViewModels private set { SetProperty(ref _SubBackgroundSpecialties, value); + OnPropertyChanged(nameof(SelectedBackgroundSpecialties)); + } + } + public NotifyTaskCompletion> SelectedBackgroundSpecialties + { + get + { + return _SubBackgroundSpecialties ?? _BackgroundSpecialties; } } diff --git a/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacterViewModel.cs b/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacterViewModel.cs index 3e4f423f..ec8da37c 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacterViewModel.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/PlayerCharacterViewModel.cs @@ -43,6 +43,12 @@ namespace AideDeJeu.ViewModels SetProperty(ref _Class, value); } } + + + + + + #region Background private BackgroundItem _Background = null; public BackgroundItem Background { @@ -53,6 +59,7 @@ namespace AideDeJeu.ViewModels set { SetProperty(ref _Background, value); + OnPropertyChanged(nameof(SelectedBackground)); } } private SubBackgroundItem _SubBackground = null; @@ -65,6 +72,14 @@ namespace AideDeJeu.ViewModels set { SetProperty(ref _SubBackground, value); + OnPropertyChanged(nameof(SelectedBackground)); + } + } + public BackgroundItem SelectedBackground + { + get + { + return _SubBackground ?? _Background; } } private string _PersonalityTrait = null; @@ -125,6 +140,7 @@ namespace AideDeJeu.ViewModels set { SetProperty(ref _BackgroundSpecialty, value); + OnPropertyChanged(nameof(SelectedBackgroundSpecialty)); } } private string _SubBackgroundSpecialty = null; @@ -137,6 +153,14 @@ namespace AideDeJeu.ViewModels set { SetProperty(ref _SubBackgroundSpecialty, value); + OnPropertyChanged(nameof(SelectedBackgroundSpecialty)); + } + } + public string SelectedBackgroundSpecialty + { + get + { + return _SubBackgroundSpecialty ?? _BackgroundSpecialty; } } private SkillItem _BackgroundSkill = null; @@ -149,6 +173,7 @@ namespace AideDeJeu.ViewModels set { SetProperty(ref _BackgroundSkill, value); + OnPropertyChanged(nameof(SelectedBackgroundSkill)); } } private SkillItem _SubBackgroundSkill = null; @@ -161,7 +186,16 @@ namespace AideDeJeu.ViewModels set { SetProperty(ref _SubBackgroundSkill, value); + OnPropertyChanged(nameof(SelectedBackgroundSkill)); } } + public SkillItem SelectedBackgroundSkill + { + get + { + return _SubBackgroundSkill ?? _BackgroundSkill; + } + } + #endregion Background } } diff --git a/AideDeJeu/AideDeJeu/Views/PlayerCharacterEditorPage.xaml b/AideDeJeu/AideDeJeu/Views/PlayerCharacterEditorPage.xaml index 23572354..f2a103a8 100644 --- a/AideDeJeu/AideDeJeu/Views/PlayerCharacterEditorPage.xaml +++ b/AideDeJeu/AideDeJeu/Views/PlayerCharacterEditorPage.xaml @@ -50,26 +50,29 @@ - - - - - -