我将此网格划分为三列,但我想支持两列,每列宽度为“0.5 *”,另一列宽度为“1 *”。列应填充从Web服务接收的数据。如何根据收到的数据量来实现该要求?
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.3*" />
<ColumnDefinition Width="0.3*" />
<ColumnDefinition Width="0.3*" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0">
<TextBlock Text="{Binding OtherValue1Label}" />
<TextBlock Text="{Binding OtherValue1Value}" />
</StackPanel>
<StackPanel Grid.Column="1">
<TextBlock Text="{Binding OtherValue2Label}" />
<TextBlock Text="{Binding OtherValue2Value}" />
</StackPanel>
<StackPanel Grid.Column="2">
<TextBlock Text="{Binding OtherValue3Label}" />
<TextBlock Text="{Binding OtherValue3Value}" />
</StackPanel>
答案 0 :(得分:2)
当只需要第1列时,您可以将第2和第3 ColumnDefinitions
的Width属性设置为0。例如:
//set column width to 0
var columns = MyGrid.ColumnDefinitions;
rows[1].Width = new GridLength(0);
rows[2].Width = new GridLength(0);
//set it back to 0.3*
var columns = MyGrid.ColumnDefinitions;
rows[1].Width = new GridLength(0.3, GridUnitType.Star);
rows[2].Width = new GridLength(0.3, GridUnitType.Star);
当您需要第1列和第2列时,可以应用相同的方法。只需将第3列的宽度设置为0.