public InstalledPackagesViewModel(IHomeViewModel parent)
{
_parent = parent;
_packages = new ObservableCollection<PackageViewModel>();
LoadPackages(true);
Observable.FromEventPattern<PropertyChangedEventArgs>(this, "PropertyChanged")
.Where(e => e.EventArgs.PropertyName == "Match")
.ObserveOnDispatcher()
.Subscribe(e => LoadPackages());
Observable.FromEventPattern<PropertyChangedEventArgs>(this, "PropertyChanged")
.Where(e => e.EventArgs.PropertyName == "SearchQuery")
.Throttle(TimeSpan.FromMilliseconds(400))
.DistinctUntilChanged()
.ObserveOnDispatcher()
.Subscribe(e => LoadPackages());
Observable.FromEventPattern<PropertyChangedEventArgs>(_localService, "PropertyChanged")
.Where(e => e.EventArgs.PropertyName == "Packages")
.ObserveOnDispatcher()
.Subscribe(e => LoadPackages());
SelectedPackage = null;
}