我是利用在textbox框下面隐藏一个listbox,在输入后对内容进行匹配操作的。后台定义了两个datatable,dt1是用来存放原数据,dt2用来显示匹配的数据。在textbox上输入后,利用datatable.Select("name Like '%" + textbox.text + "%'")搜出匹配的行,清空dt2,然后将匹配数据插入到dt2中,之后listbox.itemsource绑定dt2来显示数据。具体效果已经实现了,现在想问下有没有更好方法来实现这个功能???例如:不定义另个datatable,listbox.itemsource直接和dt1绑定,textbox输入后,dt1自动匹配输入的内容,listbox不显示不配的,但dt1的数据还是所有原数据,不用在重新获取原数据。又例如:我在网上搜索了combox可以实现自动完成功能,但代码比较复杂,不是很懂,但即使可以实现,但我希望不出现右侧下拉的箭头,有combox好点的实现方法吗??麻烦大家帮帮忙了!!!

解决方案 »

  1.   

    只要dt1.select就好了 dt2是多余的
      

  2.   

    dt1.select出来的是datarow[],我都是将每行row插入新的datatable中的。怎样处理dt1.select呢?
      

  3.   

    listbox.itemsource = select 出来的datarow[]
    这样不可以么?
      

  4.   

    dt1.Select("name Like '%" + textbox.text + "%'") 取10条出来放list1里给listbox显示.
      

  5.   

    listbox 里的是索引..不是内容.新的datatable 显示是根据某一条索引出来的N条内容.dt1 -> list索引集 ->listbox输入参考 ->textbox最终索引  ->dt2最终索引出来的结果.
      

  6.   


    这样可以,显示出来的是空白数据,要怎样确定让listbox显示我要的那一列数据?dt列有a、b、c,listbox要显示的是a列数据。<ListBox.ItemTemplate>
         <DataTemplate>
             <TextBlock Height="20" Text="{Binding Path=a}" />
         </DataTemplate>
    </ListBox.ItemTemplate>