public SetPackageItemViewModel(Pack p) //loading item { _pack = p; Items = new ObservableCollection <IBasePack>(); Items.CollectionChanged += (a, b) => { _pack.Definition.Items = Items.Select(x => x.PackItem).ToList(); }; foreach (var item in p.Definition.Items) { if (item is OptionsList) { Items.Add(new PackOptionsItemModel(item) { ParentCollection = Items }); } else if (item is Pick) { Items.Add(new PackPickItemModel(item) { ParentCollection = Items }); } } PackageDropHandler = new PackageDropHandler(); GeneratePackCommand = new RelayCommand(GeneratePack); AddOptionsCommand = new RelayCommand(AddOptions); AddPickCommand = new RelayCommand(AddPick); }
public SetPackageItemViewModel() //new item { _pack = new Pack { Name = "Package", Id = Guid.NewGuid(), Includes = new List <Include>(), //todo add include support SetId = (Parent as SetItemViewModel).Id, Definition = new PackDefinition() }; Items = new ObservableCollection <IBasePack>(); PackageDropHandler = new PackageDropHandler(); GeneratePackCommand = new RelayCommand(GeneratePack); AddOptionsCommand = new RelayCommand(AddOptions); AddPickCommand = new RelayCommand(AddPick); }
public SetPackageItemViewModel(SetPackageItemViewModel p) //copying item { _pack = new Pack { Name = p.Name, Id = Guid.NewGuid(), Includes = new List <Include>() //todo add include support }; _pack.SetId = p._pack.SetId; _pack.Definition = new PackDefinition(); Items = new ObservableCollection <IBasePack>(); Items.CollectionChanged += (a, b) => { _pack.Definition.Items = Items.Select(x => x.PackItem).ToList(); }; foreach (var packItem in p.Items) { if (packItem is PackPickItemModel) { Items.Add(new PackPickItemModel(packItem as PackPickItemModel) { ParentCollection = Items }); } else if (packItem is PackOptionsItemModel) { Items.Add(new PackOptionsItemModel(packItem as PackOptionsItemModel) { ParentCollection = Items }); } } ItemSource = p.ItemSource; Parent = p.Parent; PackageDropHandler = new PackageDropHandler(); GeneratePackCommand = new RelayCommand(GeneratePack); AddOptionsCommand = new RelayCommand(AddOptions); AddPickCommand = new RelayCommand(AddPick); }