public static void AttachFilter <T, TView>(this ISynchronizedView <T, TView> source, Func <T, TView, bool> isMatch, Action <T, TView> whenTrue, Action <T, TView> whenFalse)
 {
     source.AttachFilter(new SynchronizedViewFilter <T, TView>(isMatch, whenTrue, whenFalse, null));
 }
 public static void AttachFilter <T, TView>(this ISynchronizedView <T, TView> source, Func <T, TView, bool> isMatch, Action <T, TView> whenTrue, Action <T, TView> whenFalse, Action <ChangedKind, T, TView> onCollectionChanged)
 {
     source.AttachFilter(new SynchronizedViewFilter <T, TView>(isMatch, whenTrue, whenFalse, onCollectionChanged));
 }
 public static void AttachFilter <T, TView>(this ISynchronizedView <T, TView> source, Func <T, TView, bool> filter)
 {
     source.AttachFilter(new SynchronizedViewFilter <T, TView>(filter, null, null, null));
 }