public GuidsViewModel(IGuidsService guidsService) { _guidsService = guidsService; ExecuteStripMenuCommand = ReactiveCommand.Create <string>(ExecuteStripMenu); SelectGuidCommand = ReactiveCommand.Create <GuidWrapper>(SelectGuid); SetGuids(); }
public GuidsView(IGuidsService guidsService) { ViewModel = new GuidsViewModel(guidsService); InitializeComponent(); this.WhenActivated(d => { d(ViewModel .WhenAnyValue(vm => vm.Guids) .Subscribe((guids) => { guidsDataGrid.DataSource = guids; for (int i = 0; i < guidsDataGrid.Columns.Count; i++) { var column = guidsDataGrid.Columns[i]; column.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; column.HeaderText = guids.Columns[column.Name].Caption; } })); d(menuStrip1.Events() .ItemClicked .Select(e => e.ClickedItem.Name) .InvokeCommand(ViewModel, vm => vm.ExecuteStripMenuCommand)); d(guidsDataGrid.Events() .RowStateChanged .Where(ea => ea.StateChanged == DataGridViewElementStates.Selected) .Where(ea => this.guidsDataGrid.SelectedRows.Count == 1) .Select(ea => ((GuidWrapper)this.guidsDataGrid.SelectedRows[0].Cells["id"].Value)) .Where(val => !val.Equals(ViewModel.SelectedRow)) .InvokeCommand(ViewModel.SelectGuidCommand)); d(guidsDataGrid.Events() .DataError .Select(ea => ea.Exception) .Subscribe(ex => { if (ex is InvalidCastException) { MessageBox.Show("Invalid Format!"); } })); }); }