1

私はデータテーブルを持っています。

通貨 ID | 通貨


0 | 米ドル

1 | バーツ

2 | ユーロ

5 | ルピー

6 | 円

このテーブルを DataGridViewCombobox セルにバインドしました。ユーザーは一度に 1 つの通貨を選択できます。ユーザーが最初の DataGridViewRow で「USD」を選択した場合、次の行のコンボボックスには「USD」がありません。私はそれを手に入れることができますか?私はこれを試しました。

 private void setCellComboBoxItems(DataGridView dataGrid, int rowIndex, int colIndex,   DataTable itemsToAdd)
  {
      DataGridViewComboBoxCell currencycell = (DataGridViewComboBoxCell)dataGrid.Rows[rowIndex].Cells[colIndex];

      currencycell.DataSource = dtCurrency;
      currencycell.ValueMember = "CurrencyId";
      currencycell.DisplayMember = "CurrencyShortName";
  }

DataSource プロパティを変更できません。どうすれば入手できますか?ありがとう。

4

1 に答える 1

0

表示用のデータソースとして使用する選択した値を削除したデータソースのコピーを用意します。

イベントを購読しDataGridView.EditingControlShowing、以下のように編集コントロールからコンボボックスを取得し、そのデータソースをデータソースのコピーに設定します。

サンプルコード:

void myDGV_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        ComboBox comboBox = e.Control as ComboBox;
        if (comboBox != null)
        {
            comboBox.DataSource = displayDataSource;
        }
    }
于 2014-01-20T11:11:35.683 に答える