public ModSegmentView(BridgepourModModel bridgepourModModel, ModInstallerTabViewModel modInstallerTabViewModel, IBridgepourService bridgepourService, bool isLoaded)
        {
            InitializeComponent();

            ViewModel = new ModSegmentViewModel(bridgepourModModel, bridgepourService);
            ViewModel.OnModDownload += async() => await modInstallerTabViewModel.RefreshModList(true);

            ViewModel.CanDownload = !isLoaded;

            SetFonts();

            modName.Parent     = kryptonPanel1;
            author.Parent      = kryptonPanel1;
            description.Parent = kryptonPanel1;

            this.WhenActivated(d => {
                d(this.OneWayBind(ViewModel, vm => vm.CanDownload, v => v.downloadMod.Enabled));
                d(this.OneWayBind(ViewModel, vm => vm.CanRemove, v => v.removeMod.Enabled));
                d(this.OneWayBind(ViewModel, vm => vm.BridgepourModModel.Author, v => v.author.Text));
                d(this.OneWayBind(ViewModel, vm => vm.BridgepourModModel.Description, v => v.description.Text));
                d(this.OneWayBind(ViewModel, vm => vm.BridgepourModModel.Name, v => v.modName.Text));

                d(this.downloadMod.Events()
                  .Click
                  .Select(ea => Unit.Default)
                  .InvokeCommand(ViewModel.DownloadModCommand));

                d(this.removeMod.Events()
                  .Click
                  .Select(ea => Unit.Default)
                  .InvokeCommand(ViewModel.RemoveModCommand));
            });
        }
Exemple #2
0
 public ModSegmentViewModel(BridgepourModModel bridgepourModModel, IBridgepourService bridgepourService)
 {
     _bridgepourModModel = bridgepourModModel;
     _bridgepourService  = bridgepourService;
     DownloadModCommand  = ReactiveCommand.Create(DownloadMod);
     RemoveModCommand    = ReactiveCommand.Create(RemoveMod);
 }
 public void SetModDetails(BridgepourModModel bridgepourMod)
 {
     ViewModel !.SetModInfo(
         bridgepourMod.Author,
         bridgepourMod.Description,
         bridgepourMod.Name,
         bridgepourMod.RibbonColor,
         bridgepourMod.RibbonText,
         bridgepourMod.Status,
         bridgepourMod.Url);
 }