0

SelectedCellsChangedDataGrid のイベントにフックすることで、ユーザーが複数の列でセルを選択できないようにしようとしています。

ただし、何らかの理由で、私のコードは少し奇妙な動作をします。 これが起こることです

そして、ここに私のコードがあります:

private void chartDataGrid_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
{
    foreach (DataGridCellInfo cell in e.AddedCells)
    {
        // If a selected cell is within a different column than the first selected cell, undo the selection (to prevent selections from crossing multiple columns)
        if (cell.Column != e.AddedCells[0].Column)
                    this.chartDataGrid.SelectedCells.Remove(cell);
    }
}

ここで何が欠けているのか誰か教えてもらえますか?

4

1 に答える 1

0

さて、私はこの動作を取り除きましたが、次のような新しいコードで別の問題に出くわしました:

private void chartDataGrid_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
{
    foreach (DataGridCellInfo cell in e.AddedCells)
    {
        // If a selected cell is within a different column than the first selected cell, undo the selection (to prevent selections from crossing multiple columns)
        if (cell.Column != this.chartDataGrid.SelectedCell[0].Column)
            this.chartDataGrid.SelectedCells.Remove(cell);
    }
}

現在、選択範囲を右側の列に拡張することはできません (これは良いことです) が、左側には拡張できます。

于 2013-03-08T11:08:23.270 に答える