C# 带有标头和数据模板的uwp xaml listview
如何在xaml中向listview添加标题?我有一个带有DataTemplate的listview,无法确定如何为这两个文本块获取标题C# 带有标头和数据模板的uwp xaml listview,c#,winrt-xaml,uwp,C#,Winrt Xaml,Uwp,如何在xaml中向listview添加标题?我有一个带有DataTemplate的listview,无法确定如何为这两个文本块获取标题 <ListView Name="myListView" Grid.Row="2" IsItemClickEnabled="True" ItemClick="ListView_ItemClick" > <ListView.ItemContainerStyle> <Style TargetT
<ListView Name="myListView" Grid.Row="2" IsItemClickEnabled="True" ItemClick="ListView_ItemClick" >
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate x:DataType="data:Thema">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="50"/>
</Grid.ColumnDefinitions>
<TextBlock FontSize="16" Text="{x:Bind Name}" VerticalAlignment="Center" Grid.Column="0" />
<TextBlock FontSize="16" Text="{x:Bind FachId}" VerticalAlignment="Center" Grid.Column="1" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Listview从后台的c#代码获取数据:
myListView.ItemsSource=诱惑人;
它是一个包含项目的列表 比你想象的容易
<TextBlock Grid.Column="0">
<Run Text="Name" />
<LineBreak />
<Run Text="{x:Bind Name}" />
</TextBlock>
<TextBlock Grid.Column="1">
<Run Text="FachId" FontWeight="Bold" />
<LineBreak />
<Run Text="{x:Bind FachId}" />
</TextBlock>
祝你好运 我通过定义ListView.HeaderTemplate在ListView上创建标题行
<ListView.HeaderTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="8*" MinWidth="135"/>
<ColumnDefinition Width="15*" MinWidth="150"/>
<ColumnDefinition Width="3*" MinWidth="20"/>
<ColumnDefinition Width="2*" MinWidth="10"/>
</Grid.ColumnDefinitions>
<Border BorderBrush="AntiqueWhite" BorderThickness="0,0,0,0.5">
<TextBlock Text="Race Date" Margin="5,0,0,0" />
</Border>
<Border Grid.Column="1" BorderBrush="AntiqueWhite" BorderThickness="0,0,0,0.5">
<TextBlock Text="Circuit" Margin="5,0,0,0"/>
</Border>
<Border Grid.Column="2" BorderBrush="AntiqueWhite" BorderThickness="0,0,0,0.5">
<TextBlock Text="Laps" Grid.Column="2" Margin="0,0,5,0" HorizontalAlignment="Right"/>
</Border>
<Border Grid.Column="3" BorderBrush="AntiqueWhite" BorderThickness="0,0,0,0.5">
</Border>
</Grid>
</DataTemplate>
</ListView.HeaderTemplate>
然后我用相同的列定义定义ListView.ItemTemplate。在这之后,您会注意到ListViewItems有一些填充和边距,使标题和项目的对齐变得更加混乱。您可以在ListView.ItemContainerStyle中修复此问题,如下所示:
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<ListViewItemPresenter ContentMargin="0" Padding="0" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
只需添加相关内容即可?您希望每个项目或每组项目都有一个标题吗?如您所见:我在DataTemplate中定义了一个包含3列的网格,我希望这3列中的每列都有一个标题。我可以在DataTemplate之前和内部使用标记,但标题的宽度与DataTemplate中的内容不同。我喜欢在金融应用程序中实现这样的功能:当使用x:Bind时,应该将Mode=one设置为one,否则当值更改时它不会更新。编译绑定的默认模式是一次性