C#后台实现在Grid标签中动态新增CheckBox标签(WPF中)

摘要:
“);21return;22}23}24 AddCheckBox(”“);2526}27 privatevoidAddCheckBox 28{29intprev=Convert.ToInt32+1;//如果返回集合的最后一个元素,则获取列30;31CheckBoxcheckBox=newCheckBox 32{33Name=”controlReason“++”“,34Content=checkValue!
  • 页面代码
C#后台实现在Grid标签中动态新增CheckBox标签(WPF中)第1张C#后台实现在Grid标签中动态新增CheckBox标签(WPF中)第2张
 1 <Grid Margin="45,0,10,0" >
 2                 <Grid.RowDefinitions>
 3                     <RowDefinition Height="*"/>
 4                     <RowDefinition Height="*"/>
 5                 </Grid.RowDefinitions>
 6                 <Grid Name="controlReasonGrid">
 7                     <Grid.ColumnDefinitions>
 8                         <ColumnDefinition Width="*"/>
 9                         <ColumnDefinition Width="*"/>
10                         <ColumnDefinition Width="*"/>
11                         <ColumnDefinition Width="*"/>
12                         <ColumnDefinition Width="*"/>
13                         <ColumnDefinition Width="*"/>
14                         <ColumnDefinition Width="*"/>
15                         <ColumnDefinition Width="*"/>
16                         <ColumnDefinition Width="*"/>
17                         <ColumnDefinition Width="*"/>
18                         <ColumnDefinition Width="*"/>
19                         <ColumnDefinition Width="*"/>
20                     </Grid.ColumnDefinitions>
21                     <CheckBox Margin="10,0" Name="controlReason1"  Content="北京" Style="{StaticResource CommonCheckBoxStyle}" />
22                     <CheckBox  Grid.Column="1" Name="controlReason2"  Content="上海" Style="{StaticResource CommonCheckBoxStyle}" />
23                     <CheckBox  Grid.Column="2" Name="controlReason3"  Margin="10,0,0,0" Content="深圳" Style="{StaticResource CommonCheckBoxStyle}" />
24                     <CheckBox Grid.Column="3" Name="controlReason4"  Content="广州" Style="{StaticResource CommonCheckBoxStyle}"/>
25 
26                     <TextBox Name="controlReasonTextBox" Grid.Column="4" Style="{StaticResource CommonTextBoxStyle}" Height="26" Margin="29,0,0,0" />
27                     <Button Grid.Column="5" Name="controlReasonButton" Content="新 增" Width="50" Style="{StaticResource CommonButtonStyle}" Margin="0,0,84,0" Click="controlReasonButton_Click"/>
28                 </Grid>
29             </Grid>
View Code
  • 后台代码
C#后台实现在Grid标签中动态新增CheckBox标签(WPF中)第3张C#后台实现在Grid标签中动态新增CheckBox标签(WPF中)第4张
 1  List<CheckBox> m_AllCheckBoxs2 = new List<CheckBox>();//存放checkBox
 2   
 3 private void controlReasonButton_Click(object sender, RoutedEventArgs e)
 4         {
 5 
 6             if (m_AllCheckBoxs2.Count == 9)
 7             {
 8                 controlReasonTextBox.Visibility = Visibility.Collapsed;
 9                 controlReasonButton.Visibility = Visibility.Collapsed;
10             }
11             if (controlReasonTextBox.Text == "")
12             {
13                 MessageBox.Show("值不能为空!");
14                 return;
15             }
16             foreach (var item in m_AllCheckBoxs2)
17             {
18                 if (controlReasonTextBox.Text == item.Content.ToString())
19                 {
20                     MessageBox.Show("值不能相同!");
21                     return;
22                 }
23             }
24             AddCheckBox("");
25 
26         }
27         private void AddCheckBox(string checkValue)
28         {
29             int prev = Convert.ToInt32(m_AllCheckBoxs2.Last().GetValue(Grid.ColumnProperty)) + 1;//获取集合最后一个元素的列
30             if (m_AllCheckBoxs2.Count > 10) return;
31             CheckBox checkBox = new CheckBox
32             {
33                 Name = "controlReason" + (prev) + "",
34                 Content = checkValue != "" ? checkValue : controlReasonTextBox.Text,
35                 IsChecked = checkValue != "" ? true : false,
36             };
37             foreach (var item in m_AllCheckBoxs2)
38             {
39                 if (item.Content.ToString() == checkBox.Content.ToString())
40                 {
41                     return;
42                 }
43             }
44             checkBox.SetValue(CheckBox.StyleProperty, Application.Current.Resources["CommonCheckBoxStyle"]);//绑定样式
45             checkBox.SetValue(Grid.ColumnProperty, prev); //设置按钮所在Grid控件的列
46             controlReasonGrid.Children.Add(checkBox);
47 
48             int curr = Convert.ToInt32(checkBox.GetValue(Grid.ColumnProperty)) + 1;//获取当前复选框所在列
49             controlReasonTextBox.SetValue(Grid.ColumnProperty, curr);//文本框
50 
51             int prev2 = Convert.ToInt32(controlReasonTextBox.GetValue(Grid.ColumnProperty)) + 1;//获取文本框所在列
52             controlReasonButton.SetValue(Grid.ColumnProperty, prev2);//新增按钮
53             checkBox.Checked += cb_Checked2;//绑定事件
54             checkBox.Unchecked += cb_Unchecked2;//绑定事件
55             ChangeSelAllChecked(checkBox, m_AllCheckBoxs2);
56 
57             m_AllCheckBoxs2.Add(checkBox);
58         }
View Code

免责声明:文章转载自《C#后台实现在Grid标签中动态新增CheckBox标签(WPF中)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Selenium 3 + BrowserMobProxy 2.1.4 模拟浏览器访问 (含趟坑)【git】Github上面的开源代码怎么在本地编译运行下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

WPF 多语言解决方案

1、首先安装Multilingual App Toolkit 2、新建项目,在VS中点击"工具" -> "Multilingual App Toolkit" -> "启用选定内容" 如果出现上述Issue, 打开项目AssemblyInfo.cs文件,加入如下代码片段,然后重复Step 2. [assembly: NeutralRes...

继续聊WPF——自定义命令

作为春节前的最后一篇技术文章,写点什么呢?想了一下,就聊聊WPF中的命令吧。 命令这东西很有意思,简明一点说,它是一种逻辑,但这种逻辑可以被多种源调用,可以作用于多种目标上。如我们常见的“复制”,“剪切”等命令,它们本身就是一种逻辑——对剪切板进行操作的逻辑行为,不过,你会发现,它们不仅可以在菜单项中使用,也可以在工具栏按钮上使用,也可以通过快捷键Ctrl...

WPF 自定义ColorDialog DropDownCustomColorPicker

今天分享一个 WPF 版的ColorDialog,该控件源自 这里,不过笔者已经该控件做了大量的修改工作,以适应自己的产品需求,闲话少说,先看看效果图: 1、DropDownCustomColorPicker 效果图 先看原项目的(喜欢这种方式的,请到 这里下载源码 ) 被笔者修改之后的效果图: 二、DropDownCustomColorPicker...

好玩的WPF第二弹:电子表字体显示时间+多彩呼吸灯特效按钮

我们先来看看Quartz MS字体动态显示系统时间的效果,难度相较于上一篇也要简单许多。 首先是定义一个TextBlock如下。 <Grid> <TextBlock Name="tBlockTime" HorizontalAlignment="Center" VerticalAlignment="Cen...

继续聊WPF——用Blend自定义Listview控件的列表头

在Blend中右击ListView控件,从样式和模板相关的菜单项中,我们没找到与列表头有关的项。 然后,我们到属性面板中找GridView的ColumnHeaderContainerStyle属性,结果你发现,就算你在高级选项菜单中把它转换为本地资源,你会发现它没有反应,切换到XAML视图也没看到生成的代码。 那是不是没办法了呢?这个问题我想了想...

WPF Geometry几何图形数据图标

相信大家在阅读WPF相关GitHub开源项目源码时都会看见一串串这种数据这种Geometry数据就是几何图形数据 为什么要用Geometry数据做图标? 有一种做法是使用ttf字体文件代替,不过使用ttf字体文件会出现下面几个缺点:1、团队协作不便于管理2、需要依赖特定平台3、无法灵活使用而使用Geometry的话,我们可以将这些几何图形数据存入资源字典R...