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