VS中使用ComboBox的基本使用方法(遍历并删除指定条目)

假设我们的ComboBox有两个条目
下标0----abc
下标1----123
如果想得到下标为0的值,有两种方法:
第一种方法,自己分配内存,然后获取字符串:

  //得到条目的值,方法一,需要分配内存,略微麻烦
                int nLen = m_ComboBox.GetLBTextLen(0);
                TCHAR* pText = new TCHAR[nLen + 1];
                m_ComboBox.GetLBText(0, pText);

                //使用pText


                //删除方法一分配的内存
                delete[] pText;
                pText = NULL;

第二种方法,使用CString,相对简单容易,推荐:

{


                //得到条目的值,方法二,直接使用CString
                CString strItemText;
                m_ComboBox.GetLBText(0, strItemText);


}

遍历并删除指定字符串条目"abc"

void CTestComboBox000100Dlg::OnBnClickedButtonDel2()
{
        // TODO: Add your control notification handler code here
        for (int i = 0; i < m_ComboBox.GetCount(); i++)
        {
                //得到条目的值,方法一,需要分配内存,略微麻烦
                int nLen = m_ComboBox.GetLBTextLen(i);
                TCHAR* pText = new TCHAR[nLen + 1];
                m_ComboBox.GetLBText(i, pText);

                //得到条目的值,方法二,直接使用CString
                CString strItemText;
                m_ComboBox.GetLBText(i, strItemText);

                ASSERT(0 == strItemText.Compare(pText));


                //删除方法一分配的内存
                delete[] pText;
                pText = NULL;


                //删除字符串为abc的条目
                if (0 == strItemText.Compare(_T("abc")))
                {
                        m_ComboBox.DeleteString(i);
                        break;
                }
        }
}

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
WPFComboBox控件可以通过数据绑定的方式添加内容,以下是几种常用的方法: 1. 绑定静态集合 可以直接在xaml定义一个静态的集合,然后将其绑定到ComboBox的ItemsSource属性上。例如: ```xaml <ComboBox ItemsSource="{Binding MyItems}"> <ComboBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding}" /> </DataTemplate> </ComboBox.ItemTemplate> </ComboBox> ``` 其,MyItems是一个包含了多个字符串的静态集合。上述代码的DataTemplate用于设置每个下拉列表项的样式。 2. 绑定动态集合 如果需要动态加载下拉列表项,可以在代码创建一个ObservableCollection集合,并将其绑定到ComboBox的ItemsSource属性上。例如: ```csharp public ObservableCollection<string> MyItems { get; set; } = new ObservableCollection<string>(); // 加载下拉列表项 MyItems.Add("Item 1"); MyItems.Add("Item 2"); MyItems.Add("Item 3"); // 绑定到ComboBox comboBox.ItemsSource = MyItems; ``` 上述代码的ObservableCollection是一个可观察的集合,当其数据发生变化时,ComboBox会自动更新下拉列表项。 3. 绑定到DataTable 如果需要从数据读取数据,并将其绑定到ComboBox上,可以使用DataTable。例如: ```csharp // 从数据读取数据,返回DataTable var dt = LoadDataFromDatabase(); // 绑定到ComboBox comboBox.ItemsSource = dt.DefaultView; comboBox.DisplayMemberPath = "Name"; comboBox.SelectedValuePath = "ID"; ``` 上述代码的LoadDataFromDatabase方法用于从数据读取数据,返回一个DataTable。ComboBox的DisplayMemberPath属性用于设置下拉列表项显示的内容,SelectedValuePath属性用于设置选项的值。 4. 使用Binding的RelativeSource属性 有时候需要在ComboBox的ItemsSource引用其它的数据对象,可以使用Binding的RelativeSource属性。例如: ```xaml <ComboBox ItemsSource="{Binding DataContext.MyItems, RelativeSource={RelativeSource AncestorType={x:Type Window}}}"> <ComboBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding}" /> </DataTemplate> </ComboBox.ItemTemplate> </ComboBox> ``` 上述代码的RelativeSource属性用于设置数据绑定源为Window的DataContext的MyItems集合。需要注意,如果ComboBox的父级控件不是Window,则需要设置AncestorType为相应的控件类型。 以上是几种常用的ComboBox数据绑定方法,可以根据实际情况选择合适的方式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值