public partial class MainWindow : Window { List mlist; public MainWindow() { InitializeComponent(); mlist = new List(); for (int i = 0; i < 100 * 50; i++) { var m = new Model(); m.index = i; m.Name = "TestNameTestNameTestName" + i; m.PhoneNum = i + "Test NumTest NumTest Num"; mlist.Add(m); } dg.ItemsSource = mlist; } private void Button_Click(object sender, RoutedEventArgs e) { Button button = sender as Button; string strTag = button.Tag.ToString(); if(strTag=="Red") { this.dg.Resources["columnBackground"] = Brushes.Red; }else { this.dg.Resources["columnBackground"] = Brushes.Green; } } } public class Model : INotifyPropertyChanged { public int index { get; set; } public string Name { get; set; } public string PhoneNum { get; set; } Visibility _isVisible; public Visibility isVisible { get { return _isVisible; } set { _isVisible = value; OnPropertyChanged("isVisible"); } } public event PropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged(string name) { if (PropertyChanged == null) return; PropertyChanged(this, new PropertyChangedEventArgs(name)); } }