C# WPF 快速开发18封装数据验证逻辑

进行填表工作的时候,很多地方不允许为空,如果要在程序中一个个控件都来判断有没有填写数据,代码量太多。

下面注释的代码表示为处理过的代码,而且只列出了几个控件代码。代码由传智播客杨老师编写。

bool isOK = true;//数据检验是否通过

            判断非空字段不能为空

            //if (txtName.Text.Length <= 0)

            //{

            //    isOK = false;//投票只能投反对票

            //    txtName.Background = Brushes.Red;//背景变成红色

            //}

            //else

            //{

            //    //发现有问题¬则投反对票isOK = false;

            //    //发现自己没问题¬也不能isOK = true;

            //    txtName.Background = null;//背景变成默认颜色

            //}

            //if (txtNational.Text.Length <= 0)

            //{

            //    isOK = false;

            //    txtNational.Background = Brushes.Red;//背景变成红色

            //}

            //else

            //{

            //    txtNational.Background = null;

            //}

            如果SelectedIndex<0则表示没有选中任何项

            //if (cbDepatment.SelectedIndex < 0)

            //{

            //    isOK = false;

            //    //combobox变红要这样搞

            //    cbDepatment.Effect =

            //        new DropShadowEffect() { Color = Colors.Red };

            //}

            //else

            //{

            //    cbDepatment.Effect = null;

            //}

下面进行封装处理

//ref,out

        private void CheckTextboxNotEmpty(ref bool isOK, 

            params TextBox[] textboxes)

        {

            foreach (TextBox txtBox in textboxes)

            {

                if (txtBox.Text.Length <= 0)

                {

                    isOK = false;

                    txtBox.Background = Brushes.Red;

                }

                else

                {

                    txtBox.Background = null;

                }

            }

        }

        private void CheckComboBoxNotEmpty(ref bool isOK,

            params ComboBox[] cmbs)

        {

            foreach (ComboBox cmb in cmbs)

            {

                if (cmb.SelectedIndex < 0)

                {

                    isOK = false;

                    cmb.Effect = new DropShadowEffect { Color=Colors.Red};

                }

                else

                {

                    cmb.Effect = null;

                }

            }

        }

private void txtSave_Click(object sender, RoutedEventArgs e)

        {

               bool isOK = true;

CheckTextboxNotEmpty(ref isOK, txtName, txtNational, txtNativeAddr, txtAddr, 

                 txtBaseSalary, txtTelNum, txtIdNum, txtPosition, txtNumber);

             CheckComboBoxNotEmpty(ref isOK, cbGender, cbMarriage, 

                 cbPartyStatus, cbEducation, cbDepatment);

……

}

我也还不知道ref是什么变量,先特殊地方跟着用就好吧。作者杨老师说还有一种更牛逼的方法,叫反射来着。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值