DevExpress XtraGrid не виден даже после того, как я установил Visible = true

Я использую инструменты DevExpress в своем текущем проекте WinForms. На странице, над которой я работаю, есть сетка для субагентств, которая видна или нет в зависимости от определенного флага с именем IsParentAgency. Если агентство является головным агентством, то сетка должна быть видна со всеми дочерними агентствами агентства. Если нет, то сетка должна быть невидимой.

Однако, что бы я ни делал, я не могу сделать так, чтобы сетка была видна. Даже после того, как я дал ему источник данных, принудительно инициализировал его и заполнил столбцы. Я даже пытался пойти дальше и установить SubAgenciesGridControl.Visible = true. Что бы я ни делал, для Visible всегда установлено значение false (даже при отладке строки после SubAgenciesGridControl.Visible = true).

Вот код, который я использую для настройки сетки и переключения ее видимости (я использую шаблон MVP поверх WinForms):

SubAgenciesGridControl.DataSource = Model.SubAgencies;
SubAgenciesGridControl.ForceInitialize();
SubAgenciesGridView.PopulateColumns();
SubAgenciesGridControl.Visible = Model.IsParentAgency;

Как я могу сделать сетку видимой? Он добавляет его в элементы управления, как показано в комментариях.


person Corey Adler    schedule 08.04.2013    source источник
comment
Вы уверены, что он просто не прячется за другим элементом управления или не установлен на смещение, которое выводит его за пределы диапазона просмотра? Постарайтесь, чтобы он никогда НЕ был виден, и посмотрите, появится ли он. (установите visible=true в дизайнере) Возможно, вам придется переместить его на передний план любых других элементов управления.   -  person Nikki9696    schedule 09.04.2013
comment
Для параметра Visible в конструкторе установлено значение true, и перед ним нет других элементов управления.   -  person Corey Adler    schedule 09.04.2013
comment
добавлен ли gridcontrol в форму управления? (this.Controls)   -  person Jens Kloster    schedule 09.04.2013
comment
Вы имеете в виду так: this.ParentAgencyTableLayout.Controls.Add(this.SubAgenciesGridControl, 0, 1);   -  person Corey Adler    schedule 09.04.2013
comment
Еще возможно, что элемент управления просто скрыт. Рассматривали ли вы возможность использования диспетчера компоновки, например DevExpress LayoutControl? В этом случае вы должны установить видимость LayoutControlItem, содержащего вложенную сетку, и макет будет подстраиваться под все.   -  person kenrogers    schedule 09.04.2013
comment
хм, я думаю, вам нужно опубликовать больше кода (намного больше!), если мы хотим помочь вам в дальнейшем. Я хотел бы использовать class.cs и class.designer.cs.   -  person Jens Kloster    schedule 22.05.2013


Ответы (1)


Если вы используете LayoutControl, попробуйте установить свойство Visible для LayoutControlItem. Собственное свойство visible элемента управления не вступает в игру, если вы используете LayoutControl для рендеринга макета.

person Soham Dasgupta    schedule 17.06.2013