• 页面代码

 <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. 性能测试之jmeter逻辑控制种类详解一

    逻辑控制器介绍 Jmeter逻辑控制可以对元件的执行逻辑进行控制,除Once only Controller仅一次控制器以外,其他控制器都可以可以嵌套其他种类的控制器,下面是jmeter5.3支持的控 ...

  2. python中常见的数据类型

    str 常用方法 1. 索引(下标) s = 'ABCDEFGHIJKLMN's1 = s[0]print('s[0] = ' + s1)   #s[0] = A 2. 切片:顾头不顾尾 s = 'A ...

  3. Maven 专题(七):常用命令

    mvn archetype:generate : 反向生成项目的骨架 mvn clean: 清除各个模块target目录及里面的内容 mvn compile: 静态编译,根据xx.java生成xx.c ...

  4. 数据可视化之DAX篇(五) 使用PowerBI的这两个函数,灵活计算各种占比

    https://zhuanlan.zhihu.com/p/57861350 计算个体占总体的比例是一个很常见的分析方式,它很简单,就是两个数字相除,但是当需要计算的维度.总体的范围发生动态变化时,如何 ...

  5. scrapy 源码解析 (三):启动流程源码分析(三) ExecutionEngine执行引擎

    ExecutionEngine执行引擎 上一篇分析了CrawlerProcess和Crawler对象的建立过程,在最终调用CrawlerProcess.start()之前,会首先建立Execution ...

  6. Unity-JobSystem

    NativeContainer 为什么 为解决Job之间数据处理结果的隔离问题. 是什么 NativeContainer是托管的值类型,可以相对安全的操作native内存. 注意 不能两个job同时写 ...

  7. C#中String与byte[]的相互转换

    从文件中读取字符串 string filePath = @"C:\Temp.xml"; string xmlString= File.ReadAllText(filePath); ...

  8. 从连接器组件看Tomcat的线程模型——NIO模式

    Tomcat8之后,针对Http协议默认使用org.apache.coyote.http11.Http11NioProtocol,也就是NIO模式.通过之前的博客分析,我们知道Connector组件在 ...

  9. antd踩坑:日期选择器的可选日期控制的问题

    有一个需求是日期选择需要加一个日期限制. 于是我兴高采烈的加上去了. // 日期可选判断方法 disabledDateFunc = current => { const { disabledDa ...

  10. css选择器大全

    1.元素选择器 这是最基本的CSS选择器,HTML文档中的元素本身就是一个选择器: p {line-height:1.5em; margin-bottom:1em;} //设置p元素行高1.5em,距 ...