首页 新闻 会员 周边 捐助

wpf combobox动态添加checkbox

0
悬赏园豆:30 [已解决问题] 解决于 2012-01-16 16:58

我想实现一个功能,就是combobox中动态加入几个checkbox,实现下拉框多选,将一个checkbox选中时其内容就会在combobox中显示出来,将另一个checkbox选中时其内容会跟在第一个checkbox的内容后面一起在combobox中显示出来。本人刚接触wpf时间不长,请问各位高手这个功能如何实现啊?谢谢!

答应不爱你的主页 答应不爱你 | 初学一级 | 园豆:3
提问于:2012-01-13 11:34
< >
分享
最佳答案
1

前台代码:

     <ComboBox Height="23" Name="cmbText" Width="120" IsReadOnly="False"  >
                <CheckBox Name="chk1" Content="aaaa" Checked="chk1_Checked"/>
                <CheckBox Name="chk2" Content="bbbb"  Checked="chk1_Checked"/>
                <CheckBox Name="chk3" Content="cccc"  Checked="chk1_Checked"/>
                <CheckBox Name="chk4" Content="dddd"  Checked="chk1_Checked"/>
            </ComboBox>

后台代码:

   StringBuilder sb = new StringBuilder();

        //选中的值就添加到下拉框的选择状态。
        private void chk1_Checked(object sender, RoutedEventArgs e)
        {
            CheckBox chk = (CheckBox)sender;

            sb.Append(chk.Content.ToString());

            cmbText.Text = string.Empty;
            cmbText.Items.Insert(cmbText.Items.Count, new ComboBoxItem() { Content = sb.ToString() });
            cmbText.Text = sb.ToString();
            foreach (var item in cmbText.Items)
            {
                if (item is CheckBox)
                {
                    CheckBox chks = item as CheckBox;
                    chks.Visibility = Visibility.Visible;
                }
                else
                {
                    ComboBoxItem c = item as ComboBoxItem;
                    c.Visibility = Visibility.Hidden;
                }
            }
        }

有一些细节需要优化。

收获园豆:30
悟行 | 专家六级 |园豆:12559 | 2012-01-13 13:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册