private static void OnOddBrushChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var obj = (ListViewAlternatingColorBehavior)d;

            if (obj.AssociatedObject != null)
            {
                var lv = (ListView)obj.AssociatedObject;
                var itemContainerStyleSelector = new AlternatingColorItemContainerStyleSelector();
                itemContainerStyleSelector.OddStyle.Setters.Add(new Setter {
                    Property = Control.BackgroundProperty, Value = obj.OddBrush
                });
                itemContainerStyleSelector.EvenStyle.Setters.Add(new Setter {
                    Property = Control.BackgroundProperty, Value = obj.EvenBrush
                });
                itemContainerStyleSelector.OddStyle.Setters.Add(new Setter {
                    Property = Control.HorizontalContentAlignmentProperty, Value = HorizontalAlignment.Stretch
                });
                itemContainerStyleSelector.EvenStyle.Setters.Add(new Setter {
                    Property = Control.HorizontalContentAlignmentProperty, Value = HorizontalAlignment.Stretch
                });
                itemContainerStyleSelector.OddStyle.Setters.Add(new Setter {
                    Property = FrameworkElement.MarginProperty, Value = obj.Margin
                });
                itemContainerStyleSelector.EvenStyle.Setters.Add(new Setter {
                    Property = FrameworkElement.MarginProperty, Value = obj.Margin
                });
                lv.ItemContainerStyleSelector = itemContainerStyleSelector;
            }
        }
        private void ApplyItemContainerStyleSelectors()
        {
            var itemContainerStyleSelector = new AlternatingColorItemContainerStyleSelector();

            if (SharedItemContainerStyle != null)
            {
                itemContainerStyleSelector.OddStyle.BasedOn  = SharedItemContainerStyle;
                itemContainerStyleSelector.EvenStyle.BasedOn = SharedItemContainerStyle;
            }

            itemContainerStyleSelector.OddStyle.Setters.Add(new Setter {
                Property = Control.BackgroundProperty, Value = OddBrush
            });
            itemContainerStyleSelector.EvenStyle.Setters.Add(new Setter {
                Property = Control.BackgroundProperty, Value = EvenBrush
            });
            itemContainerStyleSelector.OddStyle.Setters.Add(new Setter {
                Property = Control.HorizontalContentAlignmentProperty, Value = HorizontalAlignment.Stretch
            });
            itemContainerStyleSelector.EvenStyle.Setters.Add(new Setter {
                Property = Control.HorizontalContentAlignmentProperty, Value = HorizontalAlignment.Stretch
            });
            itemContainerStyleSelector.OddStyle.Setters.Add(new Setter {
                Property = FrameworkElement.MarginProperty, Value = Margin
            });
            itemContainerStyleSelector.EvenStyle.Setters.Add(new Setter {
                Property = FrameworkElement.MarginProperty, Value = Margin
            });

            var listView = (ListView)AssociatedObject;

            listView.ItemContainerStyleSelector = itemContainerStyleSelector;
        }