Вот мой сценарий. Моя таблица имеет фиксированное количество столбцов, скажем, 2, и изначально она имеет только одну видимую строку, но когда фокус находится в последнем столбце строки 1, а пользователь нажимает «вкладку», строка 2 станет видимой.Изменение видимости строки с помощью взаимодействия с клавиатурой в приложении UWP
Моя проблема в том, что я не могу динамически выбирать строку, которую я хочу сделать видимой, потому что я должен указать ее x:Name
во время компиляции.
Ниже приводится моя текущая работа.
.xaml файл
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal" x:Name="SP1">
<TextBox Text="1-1"/>
<TextBox Text="1-2" KeyDown="showNextLine"/>
</StackPanel>
<StackPanel Orientation="Horizontal" x:Name="SP2" Visibility="Collapsed">
<TextBox Text="2-1"/>
<TextBox Text="2-2"/>
</StackPanel>
<!--the remaining rows...-->
</StackPanel>
.cs файл
private int lastRowIndex = 1;
private void showNextLine(object sender, KeyRoutedEventArgs e)
{
lastRowIndex++;
string nextLineName = "SP" + lastRowIndex.ToString();
nextLineName.Visibility = Visibility.Visible; // which causes error because nextLineName is string instead of StackPanel
}
Кроме того, моя текущая реализация заключается в создании 50 строк и сделать последние 49 невидимы изначально, и я открыт для любого метода к Группируйте все TextBox
более систематически или гибко.
Спасибо за чтение.
При добавлении нового столбца, как о следующей строке? Он также добавляет столбец? Или столбец будет добавлен только в строку, которая сфокусирована и Tabbed? – AVK
В каждой строке всегда есть фиксированное количество столбцов. В этом случае первая строка имеет два столбца, поэтому, когда вторая строка становится видимой, она также имеет два столбца. –