2009-10-13 93 views
0

我需要知道这里发生了什么事情。其实我的目标是添加一个列,并显示内容。我添加了列,但我想知道 完成显示项目所需的代码流该列列表视图填充问题

ManagedDeviceCollection list = new ManagedDeviceCollection(); 
try 
{ 
    if(SpoServer == null) 
     return; 

    _listSelected.BeginUpdate(); 
    _listAvailable.BeginUpdate(); 

    #region populate the selected list 

    // Collect selected items. 
    object[] selected = new object[_listSelected.SelectedItems.Count]; 
    _listSelected.SelectedItems.CopyTo(selected, 0); 

    // Clear listview. 
    _listSelected.Items.Clear(); 

    // Add systems. 
    ResourcePolicySystemsLVI item; 
    foreach(ManagedDevice md in PolicySystemsList) 
    { 
     item = new ResourcePolicySystemsLVI(md); 
     item.Update(); 
     foreach(object obj in selected) 
     { 
      item.Selected = (((ResourcePolicySystemsLVI)obj).Data == item.Data); 
      break; 
     } 
     _listSelected.Items.Add(item); 
    } 

    // Sort list. 
    _listSelected.Sort(); 

    // Ensure selected items are visible. 
    if(_listSelected.SelectedItems.Count > 0) 
    { 
     _listSelected.SelectedItems[_listSelected.SelectedItems.Count 
      - 1].EnsureVisible(); 
     _listSelected.SelectedItems[0].EnsureVisible(); 
    } 

    #endregion 

    #region populate the available list 

    // Collect selected items. 
    selected = new object[_listAvailable.SelectedItems.Count]; 
    _listAvailable.SelectedItems.CopyTo(selected, 0); 

    // Clear listview. 
    _listAvailable.Items.Clear(); 

    // Add systems. 
    ResourcePolicyAvailSystemsLVI item2; 
    foreach(ManagedDevice md in AvailableSystemsList) 
    { 
     item2 = new ResourcePolicyAvailSystemsLVI(md); 
     item2.Update(); 
     foreach(object obj in selected) 
     { 
      item2.Selected = (((ResourcePolicyAvailSystemsLVI)obj).Data 
       == item2.Data); 
      break; 
     } 
     _listAvailable.Items.Add(item2); 
    } 

    // Sort list. 
    _listAvailable.Sort(); 

    // Ensure selected items are visible. 
    if(_listAvailable.SelectedItems.Count > 0) 
    { 
     _listAvailable.SelectedItems[_listAvailable.SelectedItems.Count 
      - 1].EnsureVisible(); 
     _listAvailable.SelectedItems[0].EnsureVisible(); 
    } 

    #endregion 

    _listSelected.EndUpdate(); 
    _listAvailable.EndUpdate(); 

回答

0

要在第一列之后的列中显示文本,请使用ListViewItem.SubItems集合。例如,可以按照以下方式修改您的主循环:

item2 = new ResourcePolicyAvailSystemsLVI(md); 
// skipped some of your code 
item2.SubItems.Add("My second piece of info"); // this is what puts data into the second column 

我是不是从你的问题知道你是否已经添加了必要的列到ListView:如果没有,你必须这样做使用ListView.Columns 。添加以显示子项目。

+0

我添加了新列,但是这个列表视图已经有两列,但我不知道他们如何显示数据到该列,以不同的方式 – peter 2009-10-13 03:43:11

+0

不知道我理解评论,彼得 - 不确定谁“他们“是或”是一种不同的方式“。要在附加列中显示数据,请使用ListViewItem.SubItems.Add。如果我误解了评论,那么您是否可以澄清哪些不适合您或您需要哪些其他信息? – itowlson 2009-10-13 04:02:29

+0

你能解释一下这段代码吗? – peter 2009-10-13 04:04:17