listbox 中各条目的值是否存在现成的唯一性的验证?,如果没有,如何编程实现?

解决方案 »

  1.   

    triout老兄:
    能不能给点更详细的提示,如何个数据邦定法
      

  2.   

    我只是在一个listbox中加入人名,怕有重复而已,要求确实不高
      

  3.   

    要写好很麻烦,简单点吧,就是对数据绑定事件和Add事件编程。当数据绑定过程中,会触发DataBinding事件,在这个事件中进行过滤,看新绑定的数据是否在已有的数据中重复,如果有,则抛出异常。另外,重写Add方法,也对要添加的值进行唯一性验证,如果重复则抛出异常。这两方法都不是很好的方法,其中,对DataBinding事件编程可以不需要从ListBox派生子类,而Add则需要派生子类(当然,DataBinding事件也可以在子类中处理)。最好的办法是彻底的改写ListBox控件,或者就干脆自己写一个自定义的控件实现ListBox的功能,并实现唯一性验证。我现在忙,有空我想会新写一个支持唯一性验证的ListBox的,如果改写,那工程也是很麻烦的。
      

  4.   

    以此类推,对DropDownList控件也可以使用相同的办法解决这个问题。
      

  5.   

    我的方法比较笨。供你参考。
    public void Repetition()
    {//判断两个listBox中时候有重复的,返回给ImageButtonAdd_Click
    if(this.ListBoxSource.Items.Count>0)
    {
    for(int i=0;i<this.ListBoxSource.Items.Count;i++)
    {
    for(int j=0;j<this.ListBoxBind.Items.Count;j++)
    {
    if(this.ListBoxSource.Items[i].Text==this.ListBoxBind.Items[j].Text)//判断两个 list中是否有相等的字段。
    {
    this.ListBoxSource.Items.RemoveAt(i);
    }
    }
    }
    }
    }//判断是否有重复的字段(两个listBox)
      

  6.   

    ListBoxSource.Items[i].Text 没有这个text