From 7b1f45b5262a93d8fa09cde0b4aaa554fb0b415f Mon Sep 17 00:00:00 2001 From: J2ghz Date: Wed, 15 Aug 2018 18:45:33 +0200 Subject: [PATCH] Run download on taskpool, not dispatcher --- src/ModSink.WPF/View/ModpackView.xaml | 8 +++----- src/ModSink.WPF/View/ModpackView.xaml.cs | 4 ++-- src/ModSink.WPF/ViewModel/ModpackViewModel.cs | 5 +++++ 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/ModSink.WPF/View/ModpackView.xaml b/src/ModSink.WPF/View/ModpackView.xaml index 2d37585d..4475e350 100644 --- a/src/ModSink.WPF/View/ModpackView.xaml +++ b/src/ModSink.WPF/View/ModpackView.xaml @@ -13,11 +13,9 @@ - + diff --git a/src/ModSink.WPF/View/ModpackView.xaml.cs b/src/ModSink.WPF/View/ModpackView.xaml.cs index cb7c93bb..8ce9e8cc 100644 --- a/src/ModSink.WPF/View/ModpackView.xaml.cs +++ b/src/ModSink.WPF/View/ModpackView.xaml.cs @@ -1,4 +1,5 @@ using System.Reactive.Disposables; +using System.Windows.Controls.Primitives; using ModSink.WPF.ViewModel; using ReactiveUI; @@ -14,8 +15,7 @@ public ModpackView() { this.OneWayBind(ViewModel, vm => vm.Modpack.Name, v => v.TbName.Text).DisposeWith(d); this.OneWayBind(ViewModel, vm => vm.Size, v => v.TbSize.Text).DisposeWith(d); - this.OneWayBind(ViewModel, vm => vm.Modpack.Mods, v => v.LbMods.ItemsSource).DisposeWith(d); - this.Bind(ViewModel, vm => vm.Modpack.Selected, v => v.ChkInstall.IsChecked).DisposeWith(d); + this.BindCommand(ViewModel, vm => vm.Install, v => v.ChkInstall).DisposeWith(d); }); } } diff --git a/src/ModSink.WPF/ViewModel/ModpackViewModel.cs b/src/ModSink.WPF/ViewModel/ModpackViewModel.cs index c85f422d..22a3c211 100644 --- a/src/ModSink.WPF/ViewModel/ModpackViewModel.cs +++ b/src/ModSink.WPF/ViewModel/ModpackViewModel.cs @@ -1,4 +1,5 @@ using System.Linq; +using System.Threading.Tasks; using Humanizer; using Humanizer.Bytes; using ModSink.Common.Models.Repo; @@ -16,8 +17,12 @@ public ModpackViewModel(Modpack modpack) .SelectMany(m => m.Mod.Files) .Select(f => f.Value.Length) .Aggregate((sum, a) => sum + a)).Humanize("G03"); + Install = ReactiveCommand.CreateFromTask(() => Task.Run(() => Modpack.Selected = true), + outputScheduler: RxApp.TaskpoolScheduler); } + public ReactiveCommand Install { get; } + public Modpack Modpack { get; } public string Size { get; }