2012-03-06 5 views
0

フィルタ適用時にDevExグリッドで選択された行(GetSelectedRows())の取得に問題があります。 GetSelectedRowsは、データソース内の実際の行ハンドルではなく、フィルタを使用してグリッド内の位置を返すように見えます。DevExグリッドフィルタを適用したGetSelectedRows()

var rowHandles = gridView.GetSelectedRows(); 
var count = rowHandles.Length; 
for (int indx = count-1; indx >= 0; indx--) 
{ 
    if (rowHandles[indx] >= 0) 
    { 
      if (ServiceProxy.Instance.IsAlive(CommandNames.Delete)) 
       ((IList<ISymbolFieldInfo>)_staticPriceConfigurationBindingListUser).RemoveAt(rowHandles[indx]); 
      } 
    } 
} 

誰でも私がここで間違っていることを教えてもらえますか?私はGetSelectedRows()グリッドからのacutal行のハンドルを返すことを期待して、フィルタを適用したものではない。私はあなたの仮定が間違っていると信じて

おかげ

答えて

0

。 DevXのドキュメントでは、「行ハンドルはビューが行内に表示される順序を反映するため、データがソートされたりフィルタリングされたりすると、単一の行を変更すると次の行のハンドルに影響を与える可能性があります。

ループ内の行を削除する方法は安全ではないと思いますが、そのたびに行ハンドルが変更される可能性があります。グリッドコントロールの選択の概要は、here

関連する問題