1

コードから動的 UI を作成しています。for ループを使用して、複数の行と 4 列でページにグリッドを追加しているため、ページに UI をロードするのに時間がかかります。各子グリッドを遅延してロードしたいのですが、そうではありません。それを行う方法を知っています、助けてください。ここにXAMLファイルがあります

<ScrollViewer Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" CanContentScroll="True" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Margin="0 0 0 0">
    <Grid x:Name="mainGrid" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="10" Width="Auto">
    </Grid>
</ScrollViewer>

これは .cs ファイルからの擬似コードです

for (int column = 0; column < dsMacDtls.Tables[0].Rows.Count; column++)
{
    grid = new Grid();
    grid.Width = 108;
    grid.Height = 108;

    if (column % 4 == 0)
    {
        mainGrid.RowDefinitions.Add(new RowDefinition());                    
    }
    else
    {
        mainGrid.RowDefinitions.Add(new RowDefinition());
    }

    box = new CheckBox();               
    TextBlock tb = new TextBlock();               
    tb.Text = "abcd";
    box.Content = tb;
    grid.Children.Add(box);

    ImageBrush myBrush = new ImageBrush();
    image = new Image();
    image.Source = new BitmapImage(new Uri("abcd.png"));
    grid.Background = myBrush;
    Grid.SetColumn(grid, 0);
    Grid.SetRow(grid, i);
    Border br = new Border();
    br.BorderThickness = new Thickness(1);
    br.BorderBrush = new SolidColorBrush(Colors.Gray);
    Grid.SetColumn(br, 0);
    Grid.SetRow(br, rowNumberofMachine);
    br.Width = 108;
    br.Height = 108;
    grid.Children.Add(br);
    mainGrid.Children.Add(grid);
}
4

0 に答える 0