我在做个LISTBOX显示一组数据lsbAllService.DataSource = _dsAllService.Tables["Table"].DefaultView;
lsbAllService.DisplayMember = "ServiceName";
lsbAllService.ValueMember = "ServiceID";这样就能通过
lsbAllService.SelectedValue 读出每个显示项对应的值但是这样做的毛病是每一项都定死了 不能添加 或者删除于是我就用循环添加lsbService.DisplayMember = "ServiceName";
lsbService.ValueMember = "ServiceID";
foreach(。。)
{
    lsbService.Items.Add(otherService.SelectedItem);
}也可以在界面上显示了但是获取出来的lsbAllService.SelectedValue 都是空!!!!!求求各位那里错了?

解决方案 »

  1.   

    ListControl.SelectedValue 属性
    获取或设置由 ValueMember 属性指定的成员属性的值。包含由 ValueMember 属性指定的数据源成员的值的对象。当你绑定的时候,ValueMember是和数据源有关联的,可以通过SelectedValue取到数据。
    但是下面你是循环添加的,事实上与数据源已经脱离开了,所以无法得到数据.
      

  2.   

    你可以先修改_dsAllService.Tables["Table"]的内容,然后再copy()到一个新的DataSet里(记得一定要copy),然后再
    lsbAllService.DataSource = newDataSet.Tables["Table"].DefaultView;
    lsbAllService.DisplayMember = "ServiceName";
    lsbAllService.ValueMember = "ServiceID";
    这样就等于添加、删除了