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; }