Как я связываю ComboBox, таким образом, displaymember является concat 2 полей исходной таблицы данных?

Если целью вашего очень большого CQL-файла является простое получение данных, то выполнение его исключительно в Cypher будет очень медленным (и может даже вызвать ошибку нехватки памяти).

Если вы входите в новую базу данных neo4j, вам следует рассмотреть возможность рефакторинга данных из нее и использовать команду импорта инструмента neo4j-admin для эффективного приема данных.

Если вы входите в существующую БД, вы должны рассмотреть возможность рефакторинга данных и логики из файла CQL и использования LOAD CSV .

24
задан Breeze 24 April 2017 в 08:11
поделиться

7 ответов

Расчетное решение для колонки, вероятно, является лучшим. Но если вы не можете изменить схему таблицы данных, чтобы добавить это, вы можете перебрать таблицу и заполнить новую коллекцию, которая будет служить источником данных.

var dict = new Dictionary<Guid, string>();
foreach (DataRow row in dt.Rows)
{
    dict.Add(row["GUID"], row["Name"] + " " + row["Surname"]);
}
cbo.DataSource = dict;
cbo.DataTextField = "Value";
cbo.DataValueField = "Key";
cbo.DataBind();

Очевидно, это не так эффективно, как привязка непосредственно к DataTable. но я бы не стал беспокоиться об этом, если в таблице нет тысяч строк.

26
ответ дан 28 November 2019 в 22:56
поделиться

Самый простой способ - создать новый вычисляемый столбец в DataTable, используя свойство Expression:

tbldata.Columns.Add("FullName", typeof(string), "Name + ' ' + Surname");
...
cbo.DataTextField = "FullName";
19
ответ дан Thomas Levesque 28 November 2019 в 22:56
поделиться

Или реализовать событие «Формат» следующим образом:

DataRow r = ((DataRowView)e.ListItem).Row;
e.Value = r[ "FirstName" ] + " - " + r[ "LastName" ];
3
ответ дан anaconda 28 November 2019 в 22:56
поделиться

Посмотрите на вычисляемые столбцы, используя свойство Expression объекта DataColumn.

1
ответ дан Ajw 28 November 2019 в 22:56
поделиться

Я бы создал свойство для вашего объекта данных, а затем сопоставил бы его с DataTextField

Объект данных

public string FullName
{
  get { return Name + " " + Surname; }
}

Код программной части

cbo.DataSource = tbldata;
cbo.DataTextField = "FullName";
cbo.DataValueField = "GUID";
cbo.DataBind();
5
ответ дан 28 November 2019 в 22:56
поделиться

Имейте свойство в вашем классе, которое является объединением имени и фамилии. И привяжите DataTextField к этому свойству.

Если вы привязываете его к DataTable, вы можете добавить новый столбец в DataTable, значения которого совпадают с Name и Surname, и привязать его к комбо.

2
ответ дан 28 November 2019 в 22:56
поделиться

Вы можете зарегистрировать событие привязки комбо и перебирать элементы, устанавливая текст каждого элемента в нужные поля, используя элемент данных элемента combobox.

0
ответ дан 28 November 2019 в 22:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: