public ImportCharacterViewModel(IMidgardContext context = null) : base("Import") { _context = context ?? Locator.Current.GetService <IMidgardContext>(); Character = new Character(); Races = _context.Races.ToList(); Classes = _context.Classes.ToList(); Lands = _context.Lands.ToList(); SocialClasses = _context.SocialClasses.ToList(); OpenLanguageSelection = ReactiveCommand.Create(OpenLanguageSelectionImpl); RemoveLanguage = ReactiveCommand.Create <int>(id => CharacterHasLanguages.Remove(SelectedLanguage)); OpenWeaponSelection = ReactiveCommand.Create(OpenWeaponSelectionImpl); RemoveWeapon = ReactiveCommand.Create <int>(id => CharacterHasWeapons.Remove(SelectedWeapon)); OpenWeaponGroupSelection = ReactiveCommand.Create(OpenWeaponGroupSelectionImpl); RemoveWeaponGroup = ReactiveCommand.Create <int>(id => CharacterHasSkills.Remove(SelectedSkill)); // this.ValidationRule( // viewModel => viewModel.Character.Level, // level => level > 0, // "Grad muss eine Zahl sein"); AddLanguageFromDialog = new Interaction <Unit, Language>(); AddLanguageFromDialog.RegisterHandler(SelectLanguageHandler); AddWeaponFromDialog = new Interaction <Unit, Weapon>(); AddWeaponFromDialog.RegisterHandler(SelectWeaponHandler); AddWeaponGroupFromDialog = new Interaction <Unit, Skill>(); AddWeaponGroupFromDialog.RegisterHandler(SelectWeaponGroupHandler); }
private void OpenLanguageSelectionImpl() { AddLanguageFromDialog.Handle(Unit.Default).Where(language => language != null).Subscribe(language => { CharacterHasLanguages.Add(new CharacterHasLanguage() { Character = Character, Language = language }); }); }