私はこれを自分で理解しました。これが spark DataGrid のバグかどうかはわかりません。以下は間違いなくハックであり、クリーンではありません。
ファイル内のgrid_mouseDownHandler
関数には、次の行があります。DataGrid.as
const columnIndex:int = isCellSelection ? event.columnIndex : -1;
この行により、 の がまたは以外のものであるかのようcolumnIndex
に が設定されます。元の質問で述べたように、データグリッドに of が必要です。-1
selectionMode
DataGrid
GridSelectionMode.SINGLE_CELL
GridSelectionMode.MULTIPLE_CELLS
selectionMode
GridSelectionMode.MULTIPLE_ROWS
DataGrid をサブクラス化し、再実装しましたgrid_mouseDownHandler
(基本的に、関数全体をコピーして貼り付けました)。上記の行のみを変更して、常に to を割り当てcolumnIndex
ますevent.columnIndex
。
(これらの関数は保護されているか mx_internal だったので、オーバーによって参照されたいくつかの関数をgrid_mouseDownHandler
サブクラスにコピーする必要もありました。( toggleSelection
、extendSelection
、isAnchorSet
)
次に、selectionChanging
イベント ハンドラーで、次のことを実行できます。
if( 2 == event.selectionChange.columnIndex )
{
event.preventDefault();
}
これはきれいな解決策ではないことは承知していますが、私が考えることができる最善の方法です。多分誰かがより良い解決策を提案できますか?