2016-12-13 75 views
1

我是使用UltraGrid的Infragistics的新手。用UltraGrid選擇多行

我想選擇多行使用複選框列(或是否有另一種想法)

我有一個DataGridView的一個代碼,選擇多行並將其插入到列表中,不是試圖刪除或做代碼與選定的項目。

//get the selected item 
     List<DataGridViewRow> selectedRows = (from row in Detail_shanuDGV.Rows.Cast<DataGridViewRow>() 
               where Convert.ToBoolean(row.Cells["checkBoxColumn1"].Value) == true 
               select row).ToList(); 

但是當我嘗試使用此代碼的UltraGrid這樣

List<UltraGrid> selectedRows = (from row in ultraGrid1.Rows.Cast<UltraGrid>() 
             where Convert.ToBoolean(row.Cells["caption"].Value) == true 
             select row).ToList(); 

它給了我這個錯誤

「的UltraGrid」不包含定義爲「細胞」和沒有擴展方法'Cells'接受類型'UltraGrid'的第一個參數可以被發現 因此,如果theres另一個想法或如何找到解決方案來解決這個錯誤。 通過我使用分層的UltraGrid與複選框列的方式,在我的UltraGrid我有主/詳細數據

回答

2

你應該投給UltraGridRow不要的UltraGrid

List<UltraGridRow> selectedRows = (from row in ultraGrid1.Rows.Cast<UltraGridRow> 
           where Convert.ToBoolean(row.Cells["caption"].Value) == true 
           select row).ToList(); 

此外,可能需要另一個層面在這些行上進行過濾。例如,不清楚列標題的複選框是在主控制器上還是在網格的詳細信息窗格中。此外,如果你有一個的GroupBy顯示選項,那麼你還需要添加另一個條件只篩選所需的行

例如,假設你想申請這個邏輯,但只有那些在詳細信息窗格中的行。在Infragistcs術語中,第二個窗格稱爲Band,每一行都有一個屬於它所屬的Band的屬性。和樂隊有一個性能指標,讓您得到

List<UltraGridRow> selectedRows = (from row in ultraGrid1.Rows.Cast<UltraGridRow> 
        where row.Band.Index == 1 && 
        Convert.ToBoolean(row.Cells["caption"].Value) == true 
        select row).ToList(); 

請注意,您對於波段指數,首先檢查僅當此行是在您檢查的單元格的值(因爲如果沒有「標題第二帶「在第一個樂隊列你得到一個NRE)

+0

thnx它的工作原理,但另一個問題,我想我選擇行(樂隊[1]),如何? – Juste3alfaz

+1

這正是我在答案的第二部分提到的。如果要包含在過濾器中的行應屬於第二個波段,則需要在過濾中添加另一個級別。我會嘗試更新這個問題。 – Steve

+0

它不工作,需要添加另一個過濾器也許? – Juste3alfaz