none
Динамическая привязка DataGridComboBoxColumn к DataGrid из кода (WPF) RRS feed

  • Общие обсуждения

  • Здравствуйте, уважаемые форумчане!
    Помогите, пожалуйста, связать DataGridComboBoxColumn с DataGrid из кода.
    DataGrid заполняется так:

    dgSp.ItemsSource = dtSp.DefaultView

    DataGridComboBoxColumn заполняю:

    DataGridComboBoxColumn dgcmb = new DataGridComboBoxColumn();
    dgcmb.ItemsSource = dtUnit.DefaultView;
    Binding bdg = new Binding();
    bdg.Source = dtUnit.DefaultView;
    bdg.Path  = new PropertyPath("IdUnit");
    dgcmb.SelectedValueBinding = bdg;
    dgcmb.SelectedValuePath= "IdUnit";
    dgcmb.DisplayMemberPath="NmUnit";
    dgcmb.Header = "Единица расчета";

    Как связать DataGridComboBoxColumn(dgcmb) с DataGrid (dgSp.Columns[2]) из кода не знаю.
    Написал "очень не красиво" и, полагаю, не правильно:

    dgSp.Columns[2] = dgcmb;

    При выводе на экран колонка с ComboBox отображается, но после изменения значения в ComboBox и перехода на другую строчку таблицы, новое значение замещается прежним.

    Поиск в интернете выдает примеры по использованию DataGridComboBoxColumn с описанием и привязкой непосредственно в XAML, что в моем случае не подходит.

    Использование кода:

    dgsp.Columns.Add(dgcmb)
    , результатов не дало.

    Заранее спасибо!

Все ответы

  • Я могу ошибаться, но у вас дублирование, уберите присвоение SelectedValuePath и режим биндинга (Mode) сделайте TwoWay.
    Отвечающий
  • Последовал Вашим рекомендациям. Значение в ячейке пропало, ComboBox же остался. Можно выбрать новое значение, но после потери фокуса новое значение тоже исчезает.
  • Уважаемый пользователь!

    В вашей теме отсутствует активность в течение последних 5 дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме


    Для связи [mail]