public void DuplicateSelectedItem() { if (this.SelectedItem == null) { return; } var item = (ItemData)this.SelectedItem.Data.Clone(); var id = this.NextItemId++; Items.ItemViewModel viewModel; if (item.GetType() == typeof(ItemData)) { viewModel = new Items.ItemViewModel(id, item); } else if (item.GetType() == typeof(GearItemData)) { viewModel = new Items.GearItemViewModel(id, (GearItemData)item); } else if (item.GetType() == typeof(RangedWeaponItemData)) { viewModel = new Items.RangedWeaponItemViewModel(id, (RangedWeaponItemData)item); } else if (item.GetType() == typeof(PowerItemData)) { viewModel = new Items.PowerItemViewModel(id, (PowerItemData)item); } else { throw new NotSupportedException(); } this.Items.Add(viewModel); this.SelectedItem = viewModel; }
public void ImportData(PartyMemberSnapshot snapshot, PartyMember data) { this._Snapshot = snapshot; this._Data = data; if (this._Inventory != null) { if (data.Inventory != null) { foreach (var rawItem in data.Inventory.Items) { if (rawItem.DataBytes == null || rawItem.DataLength == 0) { this._Inventory.RawItems.Add(rawItem); continue; } var bitReader = new BitReader(rawItem.DataBytes, rawItem.DataLength); ItemData item; try { item = InventoryComponent.ReadItemData(bitReader, data.Inventory.ReadVersion); } catch (Exception e) { this._Inventory.RawItems.Add(rawItem); continue; } Items.ItemViewModel viewModel; if (item.GetType() == typeof(ItemData)) { viewModel = new Items.ItemViewModel(rawItem.Id, item); } else if (item.GetType() == typeof(GearItemData)) { viewModel = new Items.GearItemViewModel(rawItem.Id, (GearItemData)item); } else if (item.GetType() == typeof(RangedWeaponItemData)) { viewModel = new Items.RangedWeaponItemViewModel(rawItem.Id, (RangedWeaponItemData)item); } else if (item.GetType() == typeof(PowerItemData)) { viewModel = new Items.PowerItemViewModel(rawItem.Id, (PowerItemData)item); } else { this._Inventory.RawItems.Add(rawItem); continue; } this._Inventory.Items.Add(viewModel); } } } }