【问题标题】:Is there a way to create a column names above the columns from ListView in Xamarin C#有没有办法在 Xamarin C# 中的 ListView 的列上方创建列名
【发布时间】:2021-03-09 03:49:06
【问题描述】:

我有一个来自 ListView 的三列和网格。有没有办法在列上方创建名称...现在它们看起来像那样。

ListView without column names

listview 的代码如下所示:

           <StackLayout>
              <ListView BackgroundColor="#d3d3d3"
                        x:Name="MeteoView"
                        ItemsSource="{Binding Forecast}"
                        HeightRequest="132"
                        IsVisible="false"
                        RowHeight="46">
                <ListView.ItemTemplate>
                  <DataTemplate>
                  <ViewCell>

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

                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="30*" />
                                    <ColumnDefinition Width="30*" />
                                    <ColumnDefinition Width="30*" />
                                </Grid.ColumnDefinitions>

                        <Label Grid.Column="0" Text="{Binding DisplayDat}"/>
                        <Label Grid.Column="1" Text="{Binding DisplayT_2M}"/>
                        <Label Grid.Column="2" Text="{Binding DisplayVmax_10M}"/>
                        
                    </Grid>
                </ViewCell>
                  </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </StackLayout>

如何设置静态字符串以在每一列上显示名称?

【问题讨论】:

  • 您可以在 ListView 上方添加一个视图,其中包含显示列标题的类似网格。如果您希望它与内容一起滚动,您可以使用 ItemTemplate 选择器添加它。
  • 你能给我举个例子吗?
  • 同意@Cheesebaron,你可以查看我的答案。

标签: c# listview xamarin


【解决方案1】:

选项 1:

您可以设置 ListView

Header
<ListView.Header>
   <Grid>
       <Grid.RowDefinitions>
               <RowDefinition Height="Auto" />
       </Grid.RowDefinitions>
                                  

       <Grid.ColumnDefinitions>
            <ColumnDefinition Width="30*" />
            <ColumnDefinition Width="30*" />
            <ColumnDefinition Width="30*" />
       </Grid.ColumnDefinitions>

       <Label Grid.Column="0" Text="xxx"/>
       <Label Grid.Column="1" Text="xxx"/>
       <Label Grid.Column="2" Text="xxx"/>
                        
   </Grid>
</ListView.Header>

注意:这样标题会随着整个 ListView 滚动。

选项 2

如果你想在 screen 中修复 Name ,你可以在 ListView 的顶部定义另一个 Grid

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

       <Grid.ColumnDefinitions>
            <ColumnDefinition Width="30*" />
            <ColumnDefinition Width="30*" />
            <ColumnDefinition Width="30*" />
       </Grid.ColumnDefinitions>

       <Label Grid.Column="0" Text="xxx"/>
       <Label Grid.Column="1" Text="xxx"/>
       <Label Grid.Column="2" Text="xxx"/>
                        
   </Grid>
   <ListView>
     //...
   </ListView>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 2019-04-24
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    相关资源
    最近更新 更多