Я пытаюсь заполнить все пространство ширины списком TextBox внутри коллекции. В UWP было так просто, как добавить <UniformGrid Rows = "1"/> to ItemsControl
, но с помощью WinUI 3 мне нужно изменить на ItemsRepeater and UniformGridLayout
, но в UniformGridLayout нет свойства Row. Это мой код:
<ItemsRepeater ItemsSource = "{x:Bind ViewModel.Specimens}">
<ItemsRepeater.Layout>
<UniformGridLayout Orientation = "Horizontal" ItemsStretch = "Fill"/>
</ItemsRepeater.Layout>
<ItemsRepeater.ItemTemplate>
<DataTemplate x:DataType = "viewModels:SpecimenViewModel">
<TextBox Margin = "10" Text = "{x:Bind Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</ItemsRepeater.ItemTemplate>
</ItemsRepeater>
Наконец, я мог бы проверить, что TextBox увеличивает свои размеры одновременно с увеличением текста внутри, но я хочу, чтобы ширина всегда была одинаковой.
Я думаю, вы были почти у цели, я думаю, вам просто нужно было добавить MaximumRowsOrColumns к количеству столбцов, добавить немного места с помощью MinColumnSpacing="10" ItemsJustification="SpaceAround"
например что-то вроде:
<UniformGridLayout MinColumnSpacing = "10"
ItemsJustification = "SpaceAround" MaximumRowsOrColumns = "2" Orientation = "Horizontal" ItemsStretch = "Fill"/>
Превосходно. Мне нравится добавление привязки.
MaximumRowsOrColumns сделали свое дело. <UniformGridLayout Orientation = "Horizontal" ItemsStretch = "Fill" MaximumRowsOrColumns = "{x:Bind ViewModel.Specimens.Count}"/>