public ProductViewModel(Product product) : base(product) { if (product.Group != null) { Group = new ProductGroupViewModel(product.Group); Group.Model.ModelChanged += OnModelChanged; } }
public override void LoadItems(ObservableCollection <DataModel> source) { base.LoadItems(source); ProductGroupViewModel allGroup = NewItem(ProductGroup.All) as ProductGroupViewModel; Items.Insert(0, allGroup); SelectedItem = allGroup; View = (CollectionView)CollectionViewSource.GetDefaultView(Items); }
public override void OnModelChanged(object sender, DataAccess.ModelChangedEventArgs e) { if (Group != null && sender.Equals(Group.Model) && e.Type == DataAccess.ModelChangedEventArgs.EventType.Delete) { Group = null; } else if (e.Type == DataAccess.ModelChangedEventArgs.EventType.Update && e.Properties.Contains("Group")) { if ((sender as Product).Group == null) { Group = null; } else { Group = new ProductGroupViewModel(Model.Group); } } else if (e.Type == DataAccess.ModelChangedEventArgs.EventType.Update && (e.Properties.Contains("Price") || e.Properties.Contains("Tax"))) { RaisePropertyChanged("TaxlessPrice"); RaisePropertyChanged("TotalPrice"); } base.OnModelChanged(sender, e); }
public override DataViewModel NewItem(DataModel model) { ProductGroupViewModel viewmodel = new ProductGroupViewModel(model as ProductGroup); return(viewmodel); }