public void RefreshAspectColoration() { if (ItemVariationTable.Items.Count == 0) { return; } for (int i = 0; i < AspectTable.Items.Count; i++) { DependencyObject obj = AspectTable.ItemContainerGenerator.ContainerFromIndex(i); if (obj == null) { continue; } IEnumerable <Button> buttons = WpfUtil.FindVisualChildren <Button>(obj).ToList(); buttons.Select(x => new { label = (AspectTable.Items[i] as IItemAspect).Name, value = x }).ToList() .ForEach(z => { if (((ItemVariationTable.SelectedItem ?? ItemVariationTable.Items[0]) as NinjaItem).Aspects.Any(y => y.Name.Contains(z.label))) { z.value.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#651fff")); } else { z.value.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#9e9e9e")); } }); } }