Esempio n. 1
0
        public override void Initialise()
        {
            _weaponModelSCDVM = new SelectionControlDVM <WeaponModel, WeaponModelDataViewModel>(
                () => DataObject().WeaponModelId,
                val =>
            {
                DataObject().WeaponModelId = DomainClassBase <WeaponModel> .IdOrNullId(val);
                OnPropertyChanged(nameof(WeaponModelSelected));
            });

            // Selection-control DVM for at kunne se/rette brugte Jewels
            _socketedJewelSCDVM = new SelectionControlDVM <Jewel, JewelDataViewModel>(
                () => SocketedJewelSelectedId,
                val => SocketedJewelSelectedId = val,
                j => j.WeaponId == DataObject().Id);

            // Selection-control DVM for at kunne se/rette frie Jewels
            _freeJewelSCDVM = new SelectionControlDVM <Jewel, JewelDataViewModel>(
                () => FreeJewelSelectedId,
                val => FreeJewelSelectedId = val,
                j => j.WeaponId == null);

            // Command-objekter til hhv. at droppe eller tilføje en Jewel
            _dropJewelCommand = new ReferenceChangeCommand <Jewel>(j => j.WeaponId = null);
            _addJewelCommand  = new AddJewelToWeaponCommand(j => j.WeaponId = DataObject().Id, DataObject(), this);

            SocketedJewelSelectedId = null;
            FreeJewelSelectedId     = null;

            // Da drop/tilføj vil medføre ændringer i Jewel-Cataloget, som udføres
            // fra Command-objekter, vil vi gerne notificeres om dette.
            DomainModel.GetCatalog <Jewel>().CatalogChanged += JewelCatalogChanged;
        }
Esempio n. 2
0
        public override void Initialise()
        {
            // Integer-slider DVM for at kunne se/rette Health Points
            _hpSliderDVM = new IntSliderDataViewModel(
                Character.MaxHealthPoints,
                HPScaleFactor,
                () => DataObject().HealthPoints,
                val =>
            {
                DataObject().HealthPoints = val;
                OnPropertyChanged(nameof(HealthPointsIndex));
                OnPropertyChanged(nameof(HealthPoints));
            });

            // Integer-slider DVM for at kunne se/rette Level
            _levelSliderDVM = new IntSliderDataViewModel(
                Character.MaxLevel,
                () => DataObject().Level,
                val =>
            {
                DataObject().Level = val;
                OnPropertyChanged(nameof(LevelIndex));
                OnPropertyChanged(nameof(Level));
            });

            // Selection-control DVM for at kunne se/rette ejede Weapon
            _ownedWeaponControlDVM = new SelectionControlDVM <Weapon, WeaponDataViewModel>(
                () => OwnedWeaponSelectedId,
                val => OwnedWeaponSelectedId = val,
                w => w.CharacterId == DataObject().Id);

            // Selection-control DVM for at kunne se/rette frie Weapon
            _freeWeaponControlDVM = new SelectionControlDVM <Weapon, WeaponDataViewModel>(
                () => FreeWeaponSelectedId,
                val => FreeWeaponSelectedId = val,
                w => w.CharacterId == null);

            // Command-objekter til hhv. at droppe eller tilføje et Weapon
            _dropWeaponCommand = new ReferenceChangeCommand <Weapon>(w => w.CharacterId = null);
            _addWeaponCommand  = new ReferenceChangeCommand <Weapon>(w => w.CharacterId = DataObject().Id);

            OwnedWeaponSelectedId = null;
            FreeWeaponSelectedId  = null;

            // Da drop/tilføj vil medføre ændringer i Weapon-Cataloget, som udføres
            // fra Command-objekter, vil vi gerne notificeres om dette.
            DomainModel.GetCatalog <Weapon>().CatalogChanged += WeaponCatalogChanged;
        }