用身份证绑定数据

本文介绍了如何在WPF应用中使用身份证号进行数据绑定。通过TextBlock和TextBox控件展示信息,当证件号文本框内容变化时触发TextChanged事件,提取身份证号中的性别和出生年月,动态绑定ComboBox的选中项,并计算并显示对应的年龄。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建身份证绑定数据的文本框。

代码:

<TextBlock Text="证件号:" Grid.Column="0" Grid.Row="5" />

                            <TextBox Grid.Column="1" Grid.Row="5" x:Name="txt_CertificateType" TextChanged="txt_CertificateType_TextChanged"/>

      <TextBlock Text="性别:" Grid.Column="3"  Grid.Row="5" />

<ComboBox Grid.Column="4" Grid.Row="5" x:Name="cbo_Gender" />

      <TextBlock Text="年龄:" Grid.Column="0"  Grid.Row="7" />

      <TextBox Grid.Column="1" Grid.Row="7" x:Name="txt_Age"/>

     <TextBlock Text="出生年月:" Grid.Column="3"  Grid.Row="7"/>

效果图:

创建“证件号”的文本框改变事件“TextChanged="txt_CertificateType_TextChanged"”并转到定义。

 后台自动创建代码:

    private void txt_CertificateType_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)

      {

          

        }

声明参数:string strIdCard = txt_CertificateType.Text.Trim();来接受页面传过来的数值。

代码:

        private void txt_CertificateType_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)

        {

            string strIdCard = txt_CertificateType.Text.Trim();

            try

            {

         判断接收的数据长度是否等于18

                if (strIdCard.Length == 18)

                {

                    string keys = strIdCard;

                 接收截取的数据(Substring:子字符串从指定的字符位置开始且具有指定的长度)

                    int sex = int.Parse(keys.Substring(16, 1));

              要截取的数据取余数

                    if (sex % 2 == 0)

                    {

                        //绑定下拉框(女)

                        cbo_Gender.SelectedValue = 34;

                    }

                    else

                    {

                        //绑定下拉框(男)

                        cbo_Gender.SelectedValue = 33;

                    }

         //年(利用身份证号提取出生日期)(Substring:子字符串从指定的字符位置开始且具有指定的长度)

                    string birth_y = keys.Substring(6, 4);

         //月(利用身份证号提取出生日期)(Substring:子字符串从指定的字符位置开始且具有指定的长度)

                    string birth_m = keys.Substring(10, 2);

         //日(利用身份证号提取出生日期)(Substring:子字符串从指定的字符位置开始且具有指定的长度)

                    string birth_d = keys.Substring(12, 2);

                    ListViewItem l = new ListViewItem();

                    //绑定出生日期(拼接截取的数据)

                    dtp_Birthday.Text= birth_y + "年" + birth_m + "月" + birth_d + "日";

                    //获取今年年份

                    string strNow = DateTime.Now.Year.ToString();

                    //把今年转化成数字

                    decimal decNow = Convert.ToDecimal(strNow);

                    //获取(截取身份证)出生年份

                    decimal decbirth_y = Convert.ToDecimal(birth_y);

                    //获取虚岁(当前日期减去出生日期)

                    decimal decAge = Convert.ToDecimal(decNow - decbirth_y) + 1;

                    //绑定年龄

                    txt_Age.Text = decAge.ToString().Trim();

                }

  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值