// Save and publish "Database ID" of the seleceted Item ( to be loaded later )
 private void OnSelected(Window win) {
     foreach (SelectionDialogModel m in TableData) {
         if (m.SelectedRow != null) {
             int itemID = Int32.Parse(m.SelectedRow.Row["ID"].ToString());
             SelectedIDEventArgs eventargs = new SelectedIDEventArgs(itemID);
             eventargs.Addition = m.Table.TableName;
             this._eventAggregator.GetEvent<SelectedIDEvent>().Publish(eventargs);
             win.Close();
         }
     }
 }
        // ---------------------------------------------------------------------------------
        // --------------------------- ITEM SELECTION FUNCTIONS ----------------------------
        // ---------------------------------------------------------------------------------

        // Load new Item form DB, depending on the "ItemType" and
        // the Item-DatabaseID, returned from the "SelectionDialogView"
        private void LoadNewItem(SelectedIDEventArgs e) {
            if (this._updateItem.Second == ItemType.HARDPOINT) {
                int maxclass = this.Data.Hardpoints[_updateItem.First].MaxClass;
                HardpointModel tmp = new HardpointModel(this._loader.ItemID, maxclass);
                if(e.Addition != "empty") tmp = this._loader.loadHardpoint(e.ItemID, maxclass);
                List<HardpointModel> hps = this.Data.Hardpoints;
                hps[this._updateItem.First] = tmp;
                this.Data.Hardpoints = new List<HardpointModel>();
                this.Data.Hardpoints = hps;
            } else if (this._updateItem.Second == ItemType.BULKHEADS) {
                var tmp = this._loader.loadBasic<BulkheadModel>(e.ItemID, Data.SelectedBulkhead.MaxClass);
                List<BulkheadModel> bhm = new List<BulkheadModel>() { tmp };
                this.Data.Bulkheads = new List<BulkheadModel>();
                this.Data.Bulkheads = bhm;
            } else if (this._updateItem.Second == ItemType.POWERPLANT) {
                var tmp = this._loader.loadBasic<PowerPlantModel>(e.ItemID, Data.SelectedPowerPlant.MaxClass);
                List<PowerPlantModel> ppm = new List<PowerPlantModel>() { tmp };
                this.Data.PowerPlants = new List<PowerPlantModel>();
                this.Data.PowerPlants = ppm;
            } else if (this._updateItem.Second == ItemType.THURSTER) {
                var tmp = this._loader.loadBasic<ThrusterModel>(e.ItemID, Data.SelectedThruster.MaxClass);
                List<ThrusterModel> tm = new List<ThrusterModel>() { tmp };
                this.Data.Thrusters = new List<ThrusterModel>();
                this.Data.Thrusters = tm;
            } else if (this._updateItem.Second == ItemType.FSD) {
                var tmp = this._loader.loadBasic<FSDModel>(e.ItemID, Data.SelectedFSD.MaxClass);
                List<FSDModel> fsdm = new List<FSDModel>() { tmp };
                this.Data.FSDs = new List<FSDModel>();
                this.Data.FSDs = fsdm;
            } else if (this._updateItem.Second == ItemType.LIFESUPPORT) {
                var tmp = this._loader.loadBasic<LifeSupportModel>(e.ItemID, Data.SelectedLifeSupport.MaxClass);
                List<LifeSupportModel> lsms = new List<LifeSupportModel>() { tmp };
                this.Data.LifeSupports = new List<LifeSupportModel>();
                this.Data.LifeSupports = lsms;
            } else if (this._updateItem.Second == ItemType.POWERDISTRIB) {
                var tmp = this._loader.loadBasic<PowerDistributorModel>(e.ItemID, Data.SelectedPowerDistrib.MaxClass);
                List<PowerDistributorModel> pdms = new List<PowerDistributorModel>() { tmp };
                this.Data.PowerDistributors = new List<PowerDistributorModel>();
                this.Data.PowerDistributors = pdms;
            } else if (this._updateItem.Second == ItemType.SENSORES) {
                var tmp = this._loader.loadBasic<SensorsModel>(e.ItemID, Data.SelectedSensor.MaxClass);
                List<SensorsModel> sms = new List<SensorsModel>() { tmp };
                this.Data.Sensors = new List<SensorsModel>();
                this.Data.Sensors = sms;
            } else if (this._updateItem.Second == ItemType.FUELTANK) {
                var tmp = this._loader.loadBasic<FuelTankModel>(e.ItemID, Data.SelectedFuelTank.MaxClass);
                List<FuelTankModel> ftms = new List<FuelTankModel>() { tmp };
                this.Data.FuelTanks = new List<FuelTankModel>();
                this.Data.FuelTanks = ftms;
            } else if (this._updateItem.Second == ItemType.UTILITY) {
                UtilityModel tmp = new UtilityModel(this._loader.ItemID);
                if (e.Addition != "empty") tmp = this._loader.loadUtility(e.ItemID, e.Addition);
                List<UtilityModel> ums = this.Data.UtilityMounts;
                ums[this._updateItem.First] = tmp;
                this.Data.UtilityMounts = new List<UtilityModel>();
                this.Data.UtilityMounts = ums;
            } else if (this._updateItem.Second == ItemType.INTERNAL) {
                int maxclass = this.Data.InternalComps1[_updateItem.First].MaxClass;
                InternalModel tmp = new InternalModel(this._loader.ItemID, maxclass);
                if (e.Addition != "empty") tmp = this._loader.loadInternal(e.ItemID, e.Addition, maxclass);
                List<InternalModel> ints = this.Data.InternalComps1;
                ints[this._updateItem.First] = tmp;
                this.Data.InternalComps1 = new List<InternalModel>();
                this.Data.InternalComps1 = ints;
            } else if (this._updateItem.Second == ItemType.INTERNALX) {
                int maxclass = this.Data.InternalComps2[_updateItem.First].MaxClass;
                InternalModel tmp = new InternalModel(this._loader.ItemID, maxclass);
                if (e.Addition != "empty") tmp = this._loader.loadInternal(e.ItemID, e.Addition, maxclass);
                List<InternalModel> ints = this.Data.InternalComps2;
                ints[this._updateItem.First] = tmp;
                this.Data.InternalComps2 = new List<InternalModel>();
                this.Data.InternalComps2 = ints;
            }
            // Fire Event, when the Outfitting Item was changed
            OutfittingChangedEventArgs eventargs = new OutfittingChangedEventArgs(this.Data, false);
            this._eventAggregator.GetEvent<OutfittingChangedEvent>().Publish(eventargs);
        }
 private void OnEmpty(Window win) {
     SelectedIDEventArgs eventargs = new SelectedIDEventArgs(0);
     eventargs.Addition = "empty";
     this._eventAggregator.GetEvent<SelectedIDEvent>().Publish(eventargs);
     win.Close();
 }