正在将TextBlock添加到GridViewItem c#

本文关键字:GridViewItem 添加 TextBlock | 更新日期: 2023-09-27 18:24:15

我有一个在XAML中构建的Grid/GridView。我有一个正在动态构建GridViewItems的列表。我正在尝试向正在动态构建的GridViewItems添加元素。我让它经历了一个循环并构建了GridViewItems,我只是似乎不知道如何将元素(TextBlocks、Symblos等)添加到GridViewItems。我将在下面发布我所拥有的:

XAML

<Grid Background="LightGray">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition />
    </Grid.RowDefinitions>
    <controls:PageHeader BackButtonVisibility="Collapsed" Content="News" Frame="{x:Bind Frame}">
        <Interactivity:Interaction.Behaviors>
            <Behaviors:EllipsisBehavior Visibility="Auto" />
        </Interactivity:Interaction.Behaviors>
        <controls:PageHeader.SecondaryCommands>
            <AppBarButton Click="{x:Bind ViewModel.GotoPrivacy}" Label="Privacy" />
            <AppBarButton Click="{x:Bind ViewModel.GotoAbout}" Label="About" />
        </controls:PageHeader.SecondaryCommands>
    </controls:PageHeader>
    <GridView x:Name="tileGridView" Margin="12,60">
        <GridView.ItemsPanel>
            <ItemsPanelTemplate>
                <ItemsWrapGrid Orientation="Horizontal"/>
            </ItemsPanelTemplate>
        </GridView.ItemsPanel>
        <GridView.ItemContainerStyle>
            <Style TargetType="GridViewItem">
                <Style.Setters>
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate>
                                <Grid Background="#2A2A2A"
                                  Margin="5"
                                  Height="200"
                                  Width="300">
                                    <ContentPresenter />
                                </Grid>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style.Setters>
            </Style>
        </GridView.ItemContainerStyle>
     </Grid>

C#

 List<TextBlock> tList = new List<TextBlock>();
 for (int j = 0; j < myList.Count; j++)
 {
     tList.Add(new TextBlock()
     {
         Text = myList[j].TitleView,
         Foreground = new SolidColorBrush(Windows.UI.Colors.White)
     });
     tList.Add(new TextBlock()
     {
         Text = myList[j].BodyView,
         Foreground = new SolidColorBrush(Windows.UI.Colors.White)
     });
 }
 tileGridView.ItemsSource = myList; 

我无法找到将titleTextBlock添加到GridViewItem的方法。在我将项源设置为myList之前,不会生成GridViewItem。

有人能指导我如何将我构建的文本块添加到我的GridViewItem中吗?

更新我已经将我的更新添加到我现在的位置。。。我已经成功地构建了textblock,但我一直无法找到将文本块添加到GridViewItem的方法。我的列表现在返回2个对象。它应该构建2个GridViewItems,但在这2个对象中有4条信息(标题、正文、作者、日期)。我正在尝试构建4个文本块,放置在每个GridViewItem中。。。希望这能更好地解释我正在努力实现的目标。

正在将TextBlock添加到GridViewItem c#

我能够找到解决方案。。。这就是我所做的,如果有人知道更好的方法,请随时反驳我的回答。

<DataTemplate x:Key="TileTemplate">
        <StackPanel Orientation="Vertical">
            <TextBlock Text="{Binding TitleView}" FontFamily="Segoe UI" FontWeight="SemiBold" FontSize="18" Foreground="White" TextWrapping="Wrap" HorizontalAlignment="Left"  VerticalAlignment="Top" Margin="10,10" />
            <TextBlock Text="{Binding BodyView}" FontFamily="Segoe UI" FontWeight="Light" FontSize="14" Foreground="White" TextWrapping="Wrap" Margin="10,0" />
        </StackPanel>
</DataTemplate>
<GridView x:Name="tileGridView" Margin="12,60" ItemTemplate="{StaticResource TileTemplate}">
        <GridView.ItemsPanel>
            <ItemsPanelTemplate>
                <ItemsWrapGrid Orientation="Horizontal"/>
            </ItemsPanelTemplate>
</GridView>

然后我将数据绑定到网格视图:

tileGridView.ItemsSource = myList;