DataGridViewComboBoxColumn называют/оценивают как?

Шаблон зависит, на которой операционной системе Вы используете.

На Linux, Вы захотите заблокировать **.o*, **.so*, **.a*, и **.la* для начала. Можно также хотеть заблокироваться ** ~ * (файл резервной копии от редактирования) и #*# (emacs резервное копирование от катастрофического отказа).

В Windows, Вы захотите **.obj*, **.lib*, и **.dll* по крайней мере.

Любые другие файлы, которые необходимо заблокировать, зависят от IDE, редактора и компилятора.

8
задан Cyril Gandon 8 November 2013 в 14:55
поделиться

1 ответ

Полагаю, вы имели в виду DataGridView, который предназначен для Windows Forms, а GridView - для ASP. NET, хотя вы отметили свой вопрос как таковой.

Как вы привязываете данные к DataGridViewComboBoxColumn? Вам нужно будет установить свойства DisplayMember и ValueMember для DataGridViewComboBoxColumn при установке его DataSource. Ссылка MSDN на DisplayMember показывает пример, но не Он вполне показывает, что вы запрашиваете, поскольку он устанавливает для обоих свойств одно и то же.

DisplayMember - это текст, который вы хотите, чтобы пользователь видел, а ValueMember - это скрытое базовое значение, связанное с ним.

В качестве примера предположим, что у вас есть класс Choice в вашем проекте, который представляет ваш выбор и выглядит следующим образом:

public class Choice
{
    public string Name { get; private set; }
    public int Value { get; private set; }
    public Choice(string name, int value)
    {
        Name = name;
        Value = value;
    }

    private static readonly List<Choice> possibleChoices = new List<Choice>
    {
        { new Choice("One", 1) },
        { new Choice("Two", 2) }
    };

    public static List<Choice> GetChoices()
    {
        return possibleChoices;
    }
}

GetChoices () вернет список, содержащий ваш выбор. В идеале у вас должен быть такой метод на уровне обслуживания, или вы могли бы создать свой собственный список в другом месте, если хотите (в коде вашей формы). Для простоты я собрал все это в один класс.

В вашей форме вы должны привязать список к DataGridViewComboBoxColumn следующим образом:

// reference the combobox column
DataGridViewComboBoxColumn cboBoxColumn = (DataGridViewComboBoxColumn)dataGridView1.Columns[0];
cboBoxColumn.DataSource = Choice.GetChoices();
cboBoxColumn.DisplayMember = "Name";  // the Name property in Choice class
cboBoxColumn.ValueMember = "Value";  // ditto for the Value property

Теперь вы должны увидеть «Один» и «Два» в поле со списком. Когда вы получите от него выбранное значение, это должно быть базовое значение 1 или 2.

В этом заключается идея использования DisplayMember / ValueMember. Это должно помочь вам в работе и адаптировать используемый источник данных.

14
ответ дан 5 December 2019 в 09:26
поделиться
Другие вопросы по тегам:

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