2016-12-13 67 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(); 

しかし、私はこの

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

のようなのUltraGridでこのコードを使用しようとすると、それは

私は、このエラーを与える "のUltraGridは「細胞」の定義が含まれていませんし、 'UltraGrid'タイプの最初の引数を受け入れる拡張メソッド 'Cells'は見つかりませんでした したがって、このエラーを解決する別のアイデアや解決策を見つける方法があります。 私は、チェックボックスの列で階層のUltraGridを使用していますちなみに、私のUltraGridに、私はマスター/詳細データを持っている

答えて

2

あなたはないのUltraGrid

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

にUltraGridRowにキャストすべきまた、おそらくあなたは別のレベルを必要としますそれらの行のフィルタリングを行います。たとえば、キャプション列のチェックボックスがグリッドのマスターまたは詳細ペインにあるかどうかは不明です。また、GroupBy表示オプションがある場合は、別の条件を追加して必要な行のみをフィルタリングする必要があります。

たとえば、このロジックを適用する場合は、詳細ペインにある行のみを適用します。 Infragistcsの用語では、この2番目のペインは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(); 

お知らせを得ることあなたのバンドインデックスの最初のチェックのみ、この行には、「キャプションが存在しない場合ので、あなたが(セルの値をチェックする第2のバンドにある場合あなたがNREを取得する最初のバンドの列)

+0

thnxそれは動作しますが、私は子供(バンド[1])の行を選択したいですか? – Juste3alfaz

+1

これはまさに私が答えの2番目の部分で言及していたものです。フィルタに含める行が2番目のバンドに属する必要がある場合は、フィルタリングで別のレベルを追加する必要があります。私は質問を更新しようとします。 – Steve

+0

その機能していない、おそらく別のフィルタを追加する必要がありますか? – Juste3alfaz

関連する問題