2009-10-13 183 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