public HistoryBindingData()
 {
     Times    = new Objects.Times();
     _filters = new List <Predicate <object> >();
     Filter   = InternalFilter;
     Outcomes = new ObservableCollection <OutComeView>();;
     foreach (var outcome in Enum.GetValues(typeof(ServiceOutcome)))
     {
         OutComeView outcomev = new OutComeView()
         {
             Outcome = (ServiceOutcome)outcome, Show = true
         };
         outcomev.PropertyChanged += new PropertyChangedEventHandler(outcomev_PropertyChanged);
         Outcomes.Add(outcomev);
     }
     States = new ObservableCollection <StateView>();;
     foreach (var state in Enum.GetValues(typeof(ServiceState)))
     {
         StateView statev = new StateView()
         {
             State = (ServiceState)state, Show = true
         };
         statev.PropertyChanged += new PropertyChangedEventHandler(statev_PropertyChanged);
         States.Add(statev);
     }
 }
        void outcomev_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            if (_historyView == null)
            {
                _historyView = CollectionViewSource.GetDefaultView(History);
            }
            OutComeView        ov     = (OutComeView)sender;
            Predicate <object> filter = new Predicate <object>(ov.FilterByOutCome);

            if (ov.Show)
            {
                RemoveFilter(filter);
            }
            else
            {
                AddFilter(filter);
            }
            _historyView.Filter = Filter;
        }