• 页面代码

 <Grid Margin="45,0,10,0" >
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid Name="controlReasonGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<CheckBox Margin="10,0" Name="controlReason1" Content="北京" Style="{StaticResource CommonCheckBoxStyle}" />
<CheckBox Grid.Column="" Name="controlReason2" Content="上海" Style="{StaticResource CommonCheckBoxStyle}" />
<CheckBox Grid.Column="" Name="controlReason3" Margin="10,0,0,0" Content="深圳" Style="{StaticResource CommonCheckBoxStyle}" />
<CheckBox Grid.Column="" Name="controlReason4" Content="广州" Style="{StaticResource CommonCheckBoxStyle}"/> <TextBox Name="controlReasonTextBox" Grid.Column="" Style="{StaticResource CommonTextBoxStyle}" Height="" Margin="29,0,0,0" />
<Button Grid.Column="" Name="controlReasonButton" Content="新 增" Width="" Style="{StaticResource CommonButtonStyle}" Margin="0,0,84,0" Click="controlReasonButton_Click"/>
</Grid>
</Grid>
  • 后台代码

  List<CheckBox> m_AllCheckBoxs2 = new List<CheckBox>();//存放checkBox

 private void controlReasonButton_Click(object sender, RoutedEventArgs e)
{ if (m_AllCheckBoxs2.Count == )
{
controlReasonTextBox.Visibility = Visibility.Collapsed;
controlReasonButton.Visibility = Visibility.Collapsed;
}
if (controlReasonTextBox.Text == "")
{
MessageBox.Show("值不能为空!");
return;
}
foreach (var item in m_AllCheckBoxs2)
{
if (controlReasonTextBox.Text == item.Content.ToString())
{
MessageBox.Show("值不能相同!");
return;
}
}
AddCheckBox(""); }
private void AddCheckBox(string checkValue)
{
int prev = Convert.ToInt32(m_AllCheckBoxs2.Last().GetValue(Grid.ColumnProperty)) + ;//获取集合最后一个元素的列
if (m_AllCheckBoxs2.Count > ) return;
CheckBox checkBox = new CheckBox
{
Name = "controlReason" + (prev) + "",
Content = checkValue != "" ? checkValue : controlReasonTextBox.Text,
IsChecked = checkValue != "" ? true : false,
};
foreach (var item in m_AllCheckBoxs2)
{
if (item.Content.ToString() == checkBox.Content.ToString())
{
return;
}
}
checkBox.SetValue(CheckBox.StyleProperty, Application.Current.Resources["CommonCheckBoxStyle"]);//绑定样式
checkBox.SetValue(Grid.ColumnProperty, prev); //设置按钮所在Grid控件的列
controlReasonGrid.Children.Add(checkBox); int curr = Convert.ToInt32(checkBox.GetValue(Grid.ColumnProperty)) + ;//获取当前复选框所在列
controlReasonTextBox.SetValue(Grid.ColumnProperty, curr);//文本框 int prev2 = Convert.ToInt32(controlReasonTextBox.GetValue(Grid.ColumnProperty)) + ;//获取文本框所在列
controlReasonButton.SetValue(Grid.ColumnProperty, prev2);//新增按钮
checkBox.Checked += cb_Checked2;//绑定事件
checkBox.Unchecked += cb_Unchecked2;//绑定事件
ChangeSelAllChecked(checkBox, m_AllCheckBoxs2); m_AllCheckBoxs2.Add(checkBox);
}

C#后台实现在Grid标签中动态新增CheckBox标签(WPF中)的更多相关文章

  1. jquery中动态新增的元素节点无法触发事件解决办法

    在使用jquery中动态新增的元素节点时会发现添加的事件是无法触发的,我们下面就为各位来详细的介绍此问题的解决办法. 比如做一个ajax读取留言列表的时候,每条留言后面有个回复按钮,class为“re ...

  2. es6 Object.assign ECMAScript 6 笔记(六) ECMAScript 6 笔记(一) react入门——慕课网笔记 jquery中动态新增的元素节点无法触发事件解决办法 响应式图像 弹窗细节 微信浏览器——返回操作 Float 的那些事 Flex布局 HTML5 data-* 自定义属性 参数传递的四种形式

    es6 Object.assign   目录 一.基本用法 二.用途 1. 为对象添加属性 2. 为对象添加方法 3. 克隆对象 4. 合并多个对象 5. 为属性指定默认值 三.浏览器支持 ES6 O ...

  3. c# json转换成dynamic对象,然后在dynamic对象中动态获取指定字符串列表中的值

    using Newtonsoft.Json;using System;using System.Collections.Generic;using System.Linq;using System.T ...

  4. Action中动态方法的调用 Action中通配符的使用 Result的配置

       Action中动态方法的调用 动态方法调用(Dynamic Method Invocation,DMI) 标识符:! 一.通过以下选中的文件来查看是否禁止调用动态方法

  5. 【转】vue中动态设置meta标签和title标签

    因为和原生的交互是需要h5这边来提供meta标签的来是来判断要不要显示分享按钮,所有就需要手动设置meta标签,标题和内容 //router内的设置 { path: '/teachers', name ...

  6. jquery中动态添加的标签绑定的click事件失效的解决办法

    把.click()换成.live('click',function(){})(如果你的jquery的版本是1.10之前) 把.click()换成.on('click',function(){})(jq ...

  7. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(17)-LinQ动态排序

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(17)-LinQ动态排序 首先修复程序中的一个BUG这个BUG在GridPager类中,把sord修改为s ...

  8. 某APK中使用了动态注册BroadcastReceiver,Launcher中动态加载此APK出现java.lang.SecurityException异常的解决方法

    在某APK中,通过如下方法动态注册了一个BroadcastReceiver,代码参考如下: @Override protected void onAttachedToWindow() { super. ...

  9. 分别在javascript和JSP中动态设置下拉列表默认值

    一.JavaScript中动态设置select标签中<option>选项的默认值: 比如,要完成下边这个下拉列表的动态显示,并且当进行前后翻页时,下拉列表中的值自动更新为当前页码: 图1 ...

随机推荐

  1. JavaScript图形实例:再谈IFS生成图形

    在“JavaScript图形实例:迭代函数系统生成图形”一文中,我们介绍了采用迭代函数系统(Iterated Function System,IFS)创建分形图案的一些实例.在该文中,仿射变换函数W的 ...

  2. sql语句replace函数的使用

    SQL中的替换函数replace()使用 语法 REPLACE ( string_expression , string_pattern , string_replacement ) 参数 strin ...

  3. JVM零碎知识

    JVM常见XX参数 查看JVM默认值 常用基本配置参数 生产环境服务器变慢,如何诊断 生产环境CPU占用过高,如何诊断 JDK自带的JVM监控和性能分析工具 jps(虚拟机进程状况工具) jinfo( ...

  4. C#foreach原理

    本文主要记录我在学习C#中foreach遍历原理的心得体会. 对集合中的要素进行遍历是所有编码中经常涉及到的操作,因此大部分编程语言都把此过程写进了语法中,比如C#中的foreach.经常会看到下面的 ...

  5. javaWeb7——PrepareStatement原理,Pareparedstatement和Statement的区别

    查询数据返回的结果集: ResulSet: 代码实现 : PrepareStatement原理 代码实现: Pareparedstatement和Statement的区别: 注意: Statement ...

  6. STL测试3)优先级队列实现二叉堆

    用法: big_heap.empty();判断堆是否为空 big_heap.pop();弹出栈顶元素最大值 big_heap.push(x);将x添加到最大堆 big_heap.top();返回栈顶元 ...

  7. jmeter察看结果树-响应数据乱码

    打开jmeter下的目录:\bin\jmeter.properties文件,搜索“encoding”关键字,找到如下配置: # The encoding to be used if none is p ...

  8. VirtualBox安装centos8

    原文链接:https://www.wjcms.net/archives/vagrantbox安装centos8 VirtualBox安装centos8 在线安装(不推荐) 打开git软件,直接运行命令 ...

  9. 数据可视化之powerBI技巧(六)在PowerBI中简单的操作,实现复杂的预测分析

    时间序列预测就是利用过去一段时间内的数据来预测未来一段时间内该数据的走势,比如根据过去5年的销售数据进行来年的收入增长预测,根据上个季度的股票走势推测未来一周的股价变化等等. 对于大部分人来说,这是个 ...

  10. Python之爬虫(十四) Scrapy框架的架构和原理

    这一篇文章主要是为了对scrapy框架的工作流程以及各个组件功能的介绍 Scrapy目前已经可以很好的在python3上运行Scrapy使用了Twisted作为框架,Twisted有些特殊的地方是它是 ...