Xamarin формы - динамическое изменение видимости строки сетки - PullRequest
0 голосов
/ 05 марта 2019

Я хочу изменить видимость конкретной строки внутри сетки с именем «myGrid», учитывая индекс динамически.Сначала я подумал, чтобы получить конкретную строку, которую я хочу использовать:

var row = Grid.GetRow(myGrid.Children[index]);

, а затем изменить атрибут IsVisible 'row' следующим образом:

row.IsVisible = false; 

К сожалению, вторая строкакода не разрешено ...

Я не хочу связывать атрибут 'IsVisible' каждой строки.Это кажется мне ненужной работой.

Буду признателен за любые предложения по решению этой проблемы !!

Ответы [ 3 ]

1 голос
/ 06 марта 2019

Я думаю, что вам лучше всего связать свойство IsVisible каждого элемента управления в строке с одним свойством в вашей модели представления.Затем все, что вам нужно сделать, это изменить значение свойства модели представления на false, и вся строка будет скрыта.

0 голосов
/ 06 марта 2019

Причина: GetRow возвращает значение типа int. Так что вы не можете установить свойство как IsVisible

Решение:

Вы можете установить rowHeight как 0, если хотите скрыть конкретную строку.

 var row = myGrid.RowDefinitions[index];
 row.Height = 0;
0 голосов
/ 05 марта 2019

Как уже говорили другие, вы пытаетесь изменить видимость индекса (это определенно неправильно).

Вы не можете получить строку сетки и установить ее видимость. Вместо этого вы должны установить видимость представления внутри строки.

Но вы должны заметить, что при этом вы можете увидеть пустое пространство внутри сетки, если вы указали фиксированную высоту или даже размер звезды для этой высоты строки.

Лучше установить высоту строки на Авто . При этом, когда вид внутри этой строки невидим, высота строки уменьшается до 0.

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