0

私は現在、オブジェクトのコレクションにバインドされているWPFアプリケーションを作成しています。DataGridユーザーがセルを変更したときにトリガーされるイベントが必要です。コレクションに複数の行/オブジェクトがある場合、これはうまく機能します。

これが私のシナリオです:

COLUMN 1   |   COLUMN 2   |   COLUMN 3   |   COLUMN 4
test       |   test 1     |   test       |   1000

列 4 に値を入力すると、イベントをトリガーし、ユーザーが列 4 の値を入力したことを判断して、他の呼び出し/計算を行うことができるようにしたいと考えています。3.5 の Microsoft DataGrid では、1 行のみを処理する場合、これは困難です。

ここに私が持っている私のコードがあります:

private void PART_DataGrid_CurrentCellChanged(object sender, EventArgs e)
        {
            Microsoft.Windows.Controls.DataGridColumn currentColumn = (sender as Presentation.DataGrid).CurrentColumn;

            if (currentColumn == null || currentColumn.DisplayIndex != 3 || !m_isEditedFinished)
                return;

            if (m_vm.MYCommand.CanExecute(null))
            {
                if (CurrentRow != null)
                {
                    if (m_isEditedFinished)
                    {
                        m_vm.MYCommand.Execute(new EnterUserCountCommandParameters()
                        {
                            ViewModel = m_vm,
                            Item = CurrentRow
                        });

                        m_isEditedFinished = false;
                    }
                }
            }
        }

    private Boolean m_isEditedFinished = false;

    private void OnCellEditEnding(object sender, Microsoft.Windows.Controls.DataGridCellEditEndingEventArgs e)
    {
        CurrentRow = e.Row.Item;
        m_isEditedFinished = true;
    }

他に何ができるかについてのアイデアはありますか?

4

1 に答える 1