public FullyObservableDBDataSubsriber <TSource, TOut> Subsribe(FullyObservableDBData <TSource> source, FullyObservableCollection <TOut> subscriber, Func <TSource, TOut> _newFunc = null)
 {
     newFunc                         = _newFunc;
     outData                         = subscriber;
     sourceData                      = source.Data;
     sourceKeySelector               = source.KeySelector;
     sourceData.CollectionChanged   += SourceData_CollectionChanged;
     sourceData.ItemPropertyChanged += SourceData_ItemPropertyChanged;
     RefreshOutdata();
     return(this);
 }
        public FullyObservableDBDataSubsriber <TSource, TOut> SubsribeAction(FullyObservableDBData <TSource> source, Action <TOut> _onChange, Func <IEnumerable <TSource>, TOut> _selectFunc)
        {
            //newFunc = _newFunc;
            itemSelector = _selectFunc;
            onChange     = _onChange;
            var selCol  = sourceData.Where(a => selector(a)).ToList();
            var selItem = itemSelector(selCol);

            onChange(selItem);

            sourceData                      = source.Data;
            sourceKeySelector               = source.KeySelector;
            sourceData.CollectionChanged   += SourceData_CollectionChanged;
            sourceData.ItemPropertyChanged += SourceData_ItemPropertyChanged;
            return(this);
        }