1、效果图,页面设计

2、代码
  //生成座位
        DataTable seatdt;
        string A = "";
        string B = "";
        string C = "";
        string D = "";
        string F = "";              
        private void btnCreateSeat_Click(object sender, RoutedEventArgs e)
        {
            //声明一个table
            seatdt = new DataTable();
            //获取席位个数
            int sumSeat = Convert.ToInt32(txt_sumSeat.Text);
            //获取列数
            int columns = Convert.ToInt32(cboSeatColumns.Text);
            //当显示的是座位席别的DGV的时候
            if (gridZuoWei.Visibility==Visibility.Visible)  
            {
                seatdt.Columns.Add("columnA", typeof(string));
                seatdt.Columns.Add("columnB", typeof(string));
                seatdt.Columns.Add("columnC", typeof(string));
                seatdt.Columns.Add("columnD", typeof(string));
                seatdt.Columns.Add("columnF", typeof(string));
                for (int i = 0; i < sumSeat;)
                {
                    if (columns == 5)
                    {
                        i = columns5(i, sumSeat);
                    }
                    else if (columns == 4)
                    {
                        i = columns4(i);
                    }
                    else if (columns == 3)
                    {
                        i = columns3(i);
                    }
                    else if (columns == 2)
                    {
                        i = columns2(i);
                    }
                    if (i > sumSeat)
                    {
                        MessageBox.Show("席位个数设置有误!应该为" + i);
                        txt_sumSeat.Text = i.ToString();                       
                    }
                }
                //绑定数据给席位为座位的DGV
                dgv_Seat.ItemsSource = seatdt.AsDataView();  
            }
            else //当显示的是卧铺席别的DGV的时候
            {
                seatdt.Columns.Add("number", typeof(string));
                seatdt.Columns.Add("top", typeof(string));
                seatdt.Columns.Add("centen", typeof(string));
                seatdt.Columns.Add("bottom", typeof(string));
             if (radioButtonTCB.IsChecked==true)  //硬卧、有上、中、下铺
                {
                    if (sumSeat % 3 == 0)
                    {
                        for (int i = 0; i < sumSeat / 3;)
                        {
                            i = WoPu3(i);
                        }
                    }
                    else
                    {
                        MessageBox.Show("席位个数设置有误!应该为" + (sumSeat + (3 - sumSeat % 3)));
                        txt_sumSeat.Text = (sumSeat + (3 - sumSeat % 3)).ToString();
                        btnCreateSeat_Click(null, null); //调用自身开始重新计算
                    }
                }
              else //只有上、下铺
             {
                    if ((sumSeat % 2) == 0)
                    {
                        for (int i = 0; i < sumSeat / 2;)
                        {
                            i = WoPu2(i);
                        }
                    }
                    else
                    {
                        MessageBox.Show("席位个数设置有误!应该为" + (sumSeat + 1));
                        txt_sumSeat.Text = (sumSeat + 1).ToString();
                        btnCreateSeat_Click(null, null); //调用自身开始重新计算
                    }
                }                          
      
             dgv_WoPuSeat.ItemsSource = seatdt.AsDataView();  //绑定数据给席位为卧铺的DGV
          }  
                   
            ShengChengZuoWei = true;
        }
        #region  生成座位席位编号的方法
        //列数为5执行的方法
        public int columns5( int i,int sumSeat)
        {
                if (i == 0)
                {
                    i++;
                    seatdt.Rows.Add("A0" + (i++), "B0" + (i++), "", "D0" + (i++), "F0" + i);
                }
                else if (i < sumSeat - 4)
                {
                    i = colA(i);
                    i = colB(i);
                    i = colC(i);
                    i = colD(i);
                    i = colF(i);
                    seatdt.Rows.Add(A, B, C, D, F);
                }
                else
                {
                  i++;
                 //添加一行数据到table中
                  seatdt.Rows.Add("A" + (i++), "B" + (i++), "", "D" + (i++), "F" + i);
                }
            
            return i;
        }
        private int colA(int i)
        {
            if (i++ < 9)
            {
                A = "A0" + i;
            }
            else
            {
                A = "A" + i;
            }
            return i;        
        }
        private int colB(int i)
        {
            if (i++ < 9)
            {
                B = "B0" + i;
            }
            else
            {
                B = "B" + i;
            }
            return i;
        }
        private int colC(int i)
        {
            if (i++ < 9)
            {
                C = "C0" + i;
            }
            else
            {
                C = "C" + i;
            }
            return i;
        }
        private int colD(int i)
        {
            if (i++ < 9)
            {
                D = "D0" + i;
            }
            else
            {
                D = "D" + i;
            }
            return i;
        }
        private int colF(int i)
        {
            if (i++ < 9)
            {
                F = "F0" + i;
            }
            else
            {
                F = "F" + i;
            }
            return i;
        }
        //列数为4执行的方法
        public int columns4(int i)
        {
            i = colA(i);
            i = colC(i);
            i = colD(i);
            i = colF(i);
            //添加一行数据到table中
            seatdt.Rows.Add(A, "", C, D, F);
            return i;
        }
        //列数为3执行的方法
        public int columns3(int i)
        {
            i = colA(i);
            i = colC(i);        
            i = colF(i);          
            //添加一行数据到table中
            seatdt.Rows.Add(A, "", C, "", F);
            return i;
        }
        //列数为2执行的方法
        public int columns2(int i)
        {
            i = colA(i);           
            i = colF(i);         
            //添加一行数据到table中
            seatdt.Rows.Add(A, "", "", "", F);
            return i;
        }
        #endregion
        #region 生成卧铺编号的方法
        public int WoPu3(int i)
        {
            if (i++ < 9)
            {
                A = "0" + i;
            }
            else
            {
                A = "" + i;
            }
            if (i < 10)
            {
                B = "0" + i+"上铺";
            }
            else
            {
                B = i + "上铺";
            }
            if (i < 10)
            {
                C = "0" + i + "中铺";
            }
            else
            {
                C = i + "中铺";
            }
            if (i < 10)
            {
                D = "0" + i + "下铺";
            }
            else
            {
                D = i + "下铺";
            }
            //添加一行数据到table中
            seatdt.Rows.Add(A,B,C,D);
            return i;
        }
        public int WoPu2(int i)
        {
            if (i++ < 9)
            {
                A = "0" + i;
            }
            else
            {
                A = "" + i;
            }
            if (i < 10)
            {
                B = "0" + i+"上铺";
            }
            else
            {
                B = i + "上铺";
            }       
            if (i < 10)
            {
                D = "0" + i+"下铺";
            }
            else
            {
                D = i + "下铺";
            }
            //添加一行数据到table中
            seatdt.Rows.Add(A, B, "", D);
            return i;
        }

#endregion

(C#)WPF根据设计的数据动态生成火车席位相关推荐

  1. vue 渲染JSON数据动态生成表格组件

    vue 通过渲染JSON数据动态生成表头及对应表格内容组件 <template><div id="viewDialog"><el-button typ ...

  2. ajax 怎么input赋值,jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签...

    jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签 发布于 2016-11-25 16:26:40 | 111 次阅读 | 评论: 0 | 来源: ...

  3. jsp页面根据json数据动态生成table

    根据需求由于不同的表要在同一个jsp展示,点击某个表名便显示某张表内容,对于java后台传给jsp页面的json形式的数据是怎么动态生成table的呢? 找了好久,终于找到某位前辈的答案,在此表示衷心 ...

  4. 报表数据动态生成页面

    做过一个WEBGIS的项目,要动态出表,并且把统计报表的数据直接生成到页面上.做过两种方法 1.直接把数据生成为一个HTML静态页面,先将数据生成静态Table的字符串 using System.IO ...

  5. html中循环生成表格数据,动态生成表格(简单实现)

    1.案例分析 1.利用对象生成假的数据,用来模拟数据库的数据. 2.核心算法:利用createElement生成表格(生成 tr , td ),注意逻辑关系. 1.css代码 table th { w ...

  6. layui做折线图_详解layuiAdmin单页版根据后台json数据动态生成左侧菜单栏

    layuiAdmin单页版根据后台 使用模板方式加载菜单 lay-url="菜单接口" lay-headers="将token带入请求头",如果没有,去掉就行 ...

  7. 记录:ajax获取数据动态生成select下拉选js部份

    js代码 $(document).ready(function() {$("#role").setRoleList();//调用下面js中的方法 }); jQuery.fn.ext ...

  8. django通过ajax请求接口返回多条数据,并动态生成表格,请求表单后将表格数据并入库

    一.最近在做接口相关的开发,需求是这样的,通过一个接口所需要传递的参数,调用接口后,处理接口响应的参数,返回多条数据,并动态生成表格,请求表单后将表格的数据入库,下面是我改过的代码,跟实际代码有些出入 ...

  9. 【java】Java运行时动态生成类几种方式

    1.概述 转载:Java运行时动态生成类几种方式 这里发现自己不知道的,原来Java 还能自己编译自己,学到了. 最近一个项目中利用规则引擎,提供用户拖拽式的灵活定义规则.这就要求根据数据库数据动态生 ...

最新文章

  1. 求方程ax^2+bx+c=0的根。
  2. 《敏捷可执行需求说明 Scrum提炼及实现技术》—— 1.1 从解决方案中甄别需求...
  3. JS-DOM Element方法和属性
  4. 判断一棵二叉树是否为AVL树
  5. 三分钟掌握数据中心“容灾和备份的区别”
  6. 计算机网络协议(一)
  7. SEO | 重新认识一下Meta标签
  8. java超出gc开销_通过这5个简单的技巧减少GC开销
  9. javascript原型_使用JavaScript的示例报告卡Web应用程序原型
  10. 三种Fibonacci数列第n项计算方法及其优劣分析
  11. 3d建模电脑配置要求_2019年3d设计渲染电脑配置推荐
  12. 有趣的算法(四)最通俗易懂的KMP算法解析
  13. Linux环境下gcc静态编译/usr/bin/ld: cannot find -lc错误原因及解决方法。
  14. C语言关键字之inline
  15. Java复习---基础复习
  16. 必须收藏!没有经验的程序员该怎么找工作?
  17. 布丰投针实验(如何将Geogebra动态文件嵌入博客中)
  18. ad19怎么手动布线_AD18/19自动布线之坑
  19. 宝石排列 java_重新排列序列以最大化顺序差异,红宝石
  20. APP弱网络条件下,体验优化之道

热门文章

  1. qq私聊顺序回复_如何利QQ群被动引精准流量?最快2小时成交变现?
  2. getSupportFragmentManager().beginTransaction().add报错cannot resolve method 'add'
  3. Vue组件的命名规则
  4. /deep/ --------------- less深度作用域
  5. 男人要“强”,不要“软”“弱”,“虚”得一匹
  6. 【linux】进程间通信——system V
  7. 【研究生本科】最全论文写作要点及实证研究诀窍,你知道多少?
  8. 分享几个特别特别强的资源福利网站
  9. FPGA设计中,跨时钟域问题的处理
  10. Android实现页面渐变效果