我想以动态的方式对齐我的ListView项目,而无需为它们明确设置宽度。我正在得到的问题是对齐他们上面的属性名称。即属性名称应该在它下面有可乐,数量应该有整数值,小计应该有低于它的浮点数。 如果我调整我的Windows的ListView应该也改变与各自的属性名称,但它没有。我已经尝试过RelativePanel,ListBox,但是没有明确的给出宽度,我希望它是动态的。列表视图在UWP
<Grid Grid.Column="2" Margin="5,0,5,0">
<ScrollViewer VerticalScrollBarVisibility="Hidden">
<StackPanel>
<TextBlock Style="{StaticResource MyTextBlock1}" FontSize="20" HorizontalAlignment="Center" Margin="0,0,0,10">Order Summary</TextBlock>
<RelativePanel>
<TextBlock Name="ItemName" Style="{StaticResource MyTextBlock1}" FontSize="12">Name</TextBlock>
<TextBlock Name="ItemPrice" Style="{StaticResource MyTextBlock1}" FontSize="12" RelativePanel.AlignRightWithPanel="True">SubTotal</TextBlock>
<TextBlock Name="ItemQuantity" Style="{StaticResource MyTextBlock1}" Margin="0,0,10,0" FontSize="12" RelativePanel.LeftOf="ItemPrice">Quantity</TextBlock>
</RelativePanel>
<ListView ItemsSource="{x:Bind dumbList}">
<ListView.ItemTemplate>
<DataTemplate x:DataType="local:Dumb">
<Grid Width="200">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{x:Bind name}"/>
<TextBlock Text="{x:Bind id}" Grid.Column="1"/>
<TextBlock Name="Quatity" Text="{x:Bind price}" Grid.Column="2"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
嗨,亚历山大!感谢您的回复! 我面临的问题是仅对齐。我希望我的排列方式与我在附图中显示的相同。只需要我的愿望的一些间隔,并且它也应该是动态的,因为相对面板是动态的。 我没有问题在获取数据到我的列表视图。 –
嗨穆罕默德!我编辑了我的答案,我的第一个不太好。你可以在ListView的上面使用一个完全像你的DataTemplate一样的Grid,就像一个固定的项目一样。只要确保Grid和ListView具有相同的宽度。 – Alexandre
嗨亚历山大谢谢你帮我解决这个问题,但仍然如我在我的主要问题中所说,我不想在我的代码中使用EXPLICIT WIDTH。 我也在主要问题中编辑了我的代码,您可以看到有一个网格可以通过屏幕更改其大小并且没有宽度属性。 –