Есть ли Атрибут, который я могу использовать в своем классе, чтобы сказать DataGridView не создавать столбец для него при привязке со Списком <MyClass>

Это не имеет большого значения, довольно легко переключаться между ними. Интеграция с MSTest тоже не имеет большого значения, просто зайдите на testdriven.net.

Как и в предыдущем человеке, выберите «Прикол», мой любимый на данный момент - «Мок».

40
задан Blorgbeard 2 June 2017 в 16:13
поделиться

2 ответа

[Browsable (false)] скрывает свойство из DataGridView .

Визуальный дизайнер обычно отображается в свойствах окно те члены, которые либо не имеют атрибута просмотра, либо отмечены Для параметра просматриваемого конструктора BrowsableAttribute установлено значение true. Эти элементы можно изменить во время разработки. Члены, отмеченные Для параметра browsable конструктора BrowsableAttribute установлено значение false: не подходит для редактирования во время разработки и поэтому не отображается в визуальном конструкторе. По умолчанию установлено значение "истина".

71
ответ дан 27 November 2019 в 01:32
поделиться

Я совершенно не подозревал, что атрибуты декоратора System.ComponentModel , такие как BrowsableAttribute , и его родственники связаны ни с чем, кроме привязки к PropertyGrid . ( facepalm ) Мне нравится подход C-Pound Guru, потому что он позволяет вам сохранить ваш графический интерфейс более слабым, чем то, что я делал в прошлом.

Просто для другой точки зрения, подход, который я использовал Долгое время он использовался для предварительного определения столбцов в DataGridView либо программно, либо через конструктор форм. Когда вы это сделаете, вы можете установить для каждого столбца DataPropertyName имя вашего свойства. Единственная хитрость в том, что вам нужно установить DataGridView ' s AutoGenerateColumns значение false, иначе DGV полностью проигнорирует ваши столбцы, созданные вручную. Обратите внимание, что по какой-то причине свойство AutoGenerateColumns скрыто в таблице свойств конструктора форм ... не знаю почему . Единственное преимущество, которое я вижу в этом подходе, заключается в том, что вы можете предварительно установить форматирование столбцов и тому подобное - вам не нужно связывать, а затем настраивать параметры рендеринга / размера столбца.

Вот пример того, что я имею в виду:

_DGV.AutoGenerateColumns = false;
DataGridViewTextBoxColumn textColumn = new DataGridViewTextBoxColumn();
textColumn.DataPropertyName = "FooBar";
textColumn.HeaderText = "Foo/Bar"; // may not need to do this with your DisplayNameAttribute
_DGV.Columns.Add(textColumn);
textColumn = new DataGridViewTextBoxColumn();
textColumn.DataPropertyName = "Baz";

List<MyClass> data = GetMyData();
_DGV.DataSource = data;
10
ответ дан 27 November 2019 в 01:32
поделиться
Другие вопросы по тегам:

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