正在将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中。。。希望这能更好地解释我正在努力实现的目标。
我能够找到解决方案。。。这就是我所做的,如果有人知道更好的方法,请随时反驳我的回答。
<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;