привязка сетки данных к столбцам [Browsable (false)] - PullRequest
1 голос
/ 23 февраля 2012

У меня есть сетка данных, которую я привязываю к классу, в которой некоторые столбцы помечены [Browsable(false)]. Эти столбцы отображаются пустыми. Есть ли способ отключить это.

Я не использую автоматическую привязку, но сам создаю столбцы и задаю свойство DataPropertyName.

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

Вот некоторый код, который демонстрирует проблему, GridBrowsableProblem - это новая форма, в которую вставлен DataGridView. При запуске ProblemProperty не имеет значения.

public partial class GridBrowsableProblem : Form
{
    public class ProblemTestClass
    {
        [Browsable(false)]
        public string ProblemProperty { get; set; }

        public string AnotherProperty { get; set; }
    }

    public GridBrowsableProblem()
    {
        InitializeComponent();
        DataGridViewTextBoxColumn column1 = new DataGridViewTextBoxColumn();
        column1.DataPropertyName = "ProblemProperty";

        DataGridViewTextBoxColumn column2 = new DataGridViewTextBoxColumn();
        column2.DataPropertyName = "AnotherProperty";

        ProblemTestClass item = new ProblemTestClass();
        item.ProblemProperty = "test1";
        item.AnotherProperty = "test2";

        BindingList<ProblemTestClass> bindingList = new BindingList<ProblemTestClass>();
        bindingList.Add(item);

        dataGridView1.Columns.Add(column1);
        dataGridView1.Columns.Add(column2);

        dataGridView1.DataSource = bindingList;
    }
}

1 Ответ

0 голосов
/ 25 августа 2012

Удалите атрибут [Browsable (false)] или установите для него значение true.

http://msdn.microsoft.com/en-us/library/system.windows.forms.propertygrid.browsableattributes(v=vs.90).aspx

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