public MainWindowViewModel() { RuleGroups = new ObservableCollection <RuleGroup>(); RuleGroup rg = new RuleGroup(); rg.Description = "Rule Group A"; Rule r = new Rule(); r.Description = "Rule 1"; Random random = new Random(); int range = 10000; for (int x = 0; x < 2000; x++) { Criteria c = new Criteria(); c.Values.Add(new Criterion() { Field = new RuleField(0) { Name = "A", Header = "A Column" }, Operation = 1, Value = "X" }); c.Values.Add(new Criterion() { Field = new RuleField(0) { Name = "B", Header = "B Column" }, Operation = 1, Value = x % 10 }); r.Criteria.Add(c); } #region Fields r.AddField("A", "A Column"); r.AddField("B", "B Column"); r.AddField("C", "C Column"); #endregion rg.Rules.Add(r); r = new Rule(); r.Description = "Rule 2"; for (int x = 0; x < 1750; x++) { r.Criteria.Add(new Criteria()); } #region Fields r.AddField("A", "A Column"); r.AddField("B", "B Column"); #endregion rg.Rules.Add(r); RuleGroups.Add(rg); }