gpt4 book ai didi

c# - Xamarin.Forms 将行插入到网格并重新排列

转载 作者:行者123 更新时间:2023-12-02 02:40:01 30 4
gpt4 key购买 nike

我正在尝试将新对象插入到第 0 行的现有网格中(将剩余的行向下移动一格)。有办法吗?与日志类似,最后一项排在第一位。请注意,我不能使用 ListView,内容中已有一个。此外,我更喜欢使用 Grid,因为我可以更好地构建它以进行演示等。完成的网格结构:

> <Grid.RowDefinitions>
> <RowDefinition Height="*"/> </Grid.RowDefinitions>

> <Grid.ColumnDefinitions>
> <ColumnDefinition/>
> <ColumnDefinition/>
> <ColumnDefinition/>
</Grid.ColumnDefinitions>
> (existing Labels)
> <Label Text="1" Grid.Column="0" Grid.Row="0"/>
<Label Text="2" Grid.Column="0" Grid.Row="0"/>
> <Label Text="3", Grid.Column="0", Grid.Row="0"/>
> </>

我以编程方式生成网格,以填充上述结构(迭代列/行 nr),然后尝试插入带有子项的顶行:

MyGrid.RowDefinitions.Insert(0,newDefinition); // Insert new row



> MyGrid.Children.Add(new Label
> {
> Text = "original row",
> TextColor = Color.Black,
> LineBreakMode = Xamarin.Forms.LineBreakMode.WordWrap,
> HorizontalTextAlignment = TextAlignment.End,
> FontSize = Device.GetNamedSize(NamedSize.Small, typeof(Label)),
> }, 0, 0); //Column / Row

...

> MyGrid.RowDefinitions.Insert(0,newDefinition); // Insert new row
> at 0 row index
>
>
> MyGrid.Children.Add(new Label
> {
> Text = "new row",
> TextColor = Color.Black,
> LineBreakMode = Xamarin.Forms.LineBreakMode.WordWrap,
> HorizontalTextAlignment = TextAlignment.End,
> FontSize = Device.GetNamedSize(NamedSize.Small, typeof(Label)),
> }, 0, 0); //Column / Row

“新行”将覆盖“原始行”

编辑:到目前为止,这就是我所做的。这只是一个行移位,没有列移位。

我无法通过

获取网格子列/行

var left = Grid.Children[0].Left();//实验标志所以我将不得不进行更多迭代。

... 添加带有标签的新行,0 列(默认情况下,网格有 1 列,1 个网格),然后:

Grid.RowDefinitions.Add(newRow); 

for (int i = Grid.Children.Count -1 ; i >= 0; i--)
{
var child = > Grid.Children[i];
Grid.Children.RemoveAt(i);
Grid.Children.Add(child, 0, i +1);
}
Grid.Children.Add(SomeLabel, 0, 0);

最佳答案

要将网格中的所有行移动一个,可以像下面的示例代码一样使用 Grid.GetRow()Grid.SetRow() 方法。

foreach (var child in grid.Children)
{
var row = Grid.GetRow(child);
Grid.SetRow(child, row + 1);
}

关于c# - Xamarin.Forms 将行插入到网格并重新排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63779193/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com