예제 #1
0
파일: Presenter.cs 프로젝트: zaprog/MVP
 private void view_GridValidatingEditor(string fieldName, ValidateEditorEventArgs e)
 {
     if (fieldName == "B")
     {
         long value;
         if (e.Value == null || e.Value.ToString().Trim().Length == 0)
         {
             e.Valid     = false;
             e.ErrorText = "Field B should not be empty !";
         }
         else if (long.TryParse(e.Value.ToString(), out value))
         {
             if (value == 0)
             {
                 e.Valid     = false;
                 e.ErrorText = "Field B should not be equal 0 !";
             }
         }
         else
         {
             e.Valid     = false;
             e.ErrorText = "Field B should be a number !";
         }
     }
 }
예제 #2
0
파일: View.cs 프로젝트: zaprog/MVP
        private void InitEvents()
        {
            this.Load       += (s, args) => FormLoad();
            this.FormClosed += (s, args) => FormClose();

            this.increaseAButton.Click += (s, args) => {
                try
                {
                    var row = dataGridView1.CurrentRow;
                    if (row != null)
                    {
                        var model = (Model)row.DataBoundItem;
                        IncreaseAClick(model);
                    }
                    ;
                }
                finally
                {
                }
            };

            this.saveButton.Click += (s, args) => {
                dataGridView1.EndEdit();
                SaveClick();
            };

            this.dataGridView1.CellValueChanged += (s, args) =>
            {
                try
                {
                    if (args.RowIndex >= 0)
                    {
                        var gridColumn = dataGridView1.Columns[args.ColumnIndex];
                        var gridRow    = dataGridView1.Rows[args.RowIndex];
                        var model      = (Model)gridRow.DataBoundItem;
                        GridCellValueChanged(gridColumn.DataPropertyName, model);
                    }
                }
                finally
                {
                }
            };

            dataGridView1.CellValidating += (s, args) =>
            {
                var    gridColumn = dataGridView1.Columns[args.ColumnIndex];
                object value      = dataGridView1.CurrentCell.Value;
                value = dataGridView1.Rows[args.RowIndex].Cells[args.ColumnIndex];
                var eventArgs = new ValidateEditorEventArgs()
                {
                    Valid = true, ErrorText = string.Empty, Value = value
                };
                GridValidatingEditor(gridColumn.DataPropertyName, eventArgs);

                dataGridView1.Rows[args.RowIndex].Cells[args.ColumnIndex].ErrorText = eventArgs.ErrorText;
                args.Cancel = !eventArgs.Valid;
            };
        }
예제 #3
0
        public void GridValidatingEditorEventForBNotNumberTest()
        {
            // Setup testing data and class dependencies
            var viewMock    = new Mock <IView>();
            var serviceMock = new Mock <IService>();
            var presenter   = new Presenter(viewMock.Object, serviceMock.Object);

            // Raising event view.GridValidatingEditor("B", e) to change model
            var e = new ValidateEditorEventArgs()
            {
                Value = "3z12"
            };

            viewMock.Raise(v => v.GridValidatingEditor += null, "B", e);

            // Verifing testing results
            Assert.AreEqual(false, e.Valid, "Validate failed validation");
            Assert.AreEqual("Field B should be a number !", e.ErrorText, "Validate error message");
        }