CollectionChanged event of observablecollection in c#
<p>How can write this code better:</p>

<pre><code> void CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
            {

        if (sender is ObservableCollection&lt;PromotionPurchaseAmount&gt;)
                    {
                        if (e.Action == NotifyCollectionChangedAction.Remove)
                        {

                            foreach (PromotionPurchaseAmount item in e.NewItems)
                            {
                                //Removed items
                                item.PropertyChanged -= EntityViewModelPropertyChanged;
                            }
                        }
                        else if (e.Action == NotifyCollectionChangedAction.Add)
                        {
                            foreach (PromotionPurchaseAmount item in e.NewItems)
                            {
                                //Added items
                                item.PropertyChanged += EntityViewModelPropertyChanged;
                            }
                        }
                    }
        else  if (sender is ObservableCollection&lt;PromotionItemPricing&gt;)
                    {
                        if (e.Action == NotifyCollectionChangedAction.Remove)
                        {

                            foreach (PromotionItemPricing item in e.NewItems)
                            {
                                //Removed items
                                item.PropertyChanged -= EntityViewModelPropertyChanged;
                            }
                        }
                        else if (e.Action == NotifyCollectionChangedAction.Add)
                        {
                            foreach (PromotionItemPricing item in e.NewItems)
                            {
                                //Added items
                                item.PropertyChanged += EntityViewModelPropertyChanged;
                            }
                        }
                    }
        else if (sender is ObservableCollection&lt;PromotionItem&gt;)
                    {
                        if (e.Action == NotifyCollectionChangedAction.Remove)
                        {

                            foreach (PromotionItem item in e.NewItems)
                            {
                                //Removed items
                                item.PropertyChanged -= EntityViewModelPropertyChanged;
                            }
                        }
                        else if (e.Action == NotifyCollectionChangedAction.Add)
                        {
                            foreach (PromotionItem item in e.NewItems)
                            {
                                //Added items
                                item.PropertyChanged += EntityViewModelPropertyChanged;
                            }
                        }
                    }
    }
</code></pre>
