Как отправить значение ComboBox DataGridTemplateColumn без нажатия клавиши возврата - PullRequest
0 голосов
/ 15 февраля 2020

я построил рабочую сетку данных с помощью ComboBox, используя DataGridTemplateColumn, как описано здесь: Создать DataGridTemplateColumn Through C# Код

EricR написал в комментарии: ".. Вы подтвердили изменение с использованием возврата? В редакторе DataGrid обычно необходимо подтвердить изменения, прежде чем они повлияют на элемент .. "

Моя проблема в том, как я могу подтвердить значение без нажатия клавиши возврата? Если я покидаю ячейку, щелкая другую ячейку или строку, не нажимая клавишу возврата, новое значение отображается только в ячейке сетки, но не обновляется в источнике данных

Спасибо за помощь Извините за англ sh

; _)

DataGridTemplateColumn dgtc = new DataGridTemplateColumn();

Binding comboBind1 = new Binding(piInfo.Name);
comboBind1.Mode = BindingMode.TwoWay;
Binding comboBind2 = new Binding(piInfo.Name);
comboBind2.Mode = BindingMode.TwoWay;
Binding comboBind3 = new Binding(piInfo.Name);
comboBind3.Mode = BindingMode.TwoWay;
Binding comboBind4 = new Binding(piInfo.Name);
comboBind4.Mode = BindingMode.TwoWay;

FrameworkElementFactory comboFactory = new FrameworkElementFactory(typeof(ComboBox));
comboFactory.SetValue(ComboBox.ItemsSourceProperty, new string[] { "test1_", "test2_", "true", "false" });
comboFactory.SetValue(ComboBox.IsEditableProperty, true);
comboFactory.SetBinding(ComboBox.TextProperty, comboBind1);
comboFactory.SetBinding(ComboBox.SelectedValueProperty, comboBind2);
comboFactory.SetBinding(ComboBox.SelectedItemProperty, comboBind3);

FrameworkElementFactory textFactory = new FrameworkElementFactory(typeof(TextBlock));
textFactory.SetBinding(TextBlock.TextProperty, comboBind4);
DataTemplate textTemplate = new DataTemplate();
textTemplate.VisualTree = textFactory;

DataTemplate comboTemplate = new DataTemplate();
comboTemplate.VisualTree = comboFactory;

dgtc.CellTemplate = textTemplate;
dgtc.CellEditingTemplate = comboTemplate;
dgtc.Header = piInfo.Name;

_Grid.Columns.Add(dgtc);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...