Ejemplo n.º 1
0
        public GuidsViewModel(IGuidsService guidsService)
        {
            _guidsService = guidsService;

            ExecuteStripMenuCommand = ReactiveCommand.Create <string>(ExecuteStripMenu);
            SelectGuidCommand       = ReactiveCommand.Create <GuidWrapper>(SelectGuid);

            SetGuids();
        }
Ejemplo n.º 2
0
        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!");
                    }
                }));
            });
        }