加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

带有标题和项模板列的Windows 8 XAML ListView应具有相同的动态

发布时间:2020-12-13 22:26:59 所属栏目:Windows 来源:网络整理
导读:我正在使用带有Itemtemplate和Headertemplate的Listview. 两个模板都包含6个列.如果我为模板设置固定的列宽,一切都很好 – 如图1所示. 但我想为项目设置宽度为“自动” – 但后来我得到图2 … 怎么办呢? 是否可以使用c#设置标题列宽度? – 或任何其他解决
我正在使用带有Itemtemplate和Headertemplate的Listview.
两个模板都包含6个列.如果我为模板设置固定的列宽,一切都很好 – 如图1所示.
但我想为项目设置宽度为“自动” – 但后来我得到图2 …

怎么办呢?
是否可以使用c#设置标题列宽度? – 或任何其他解决方案?

图1:

图2:

代码列表视图:

<ListView x:Name="DayanalyseListView" 
                      HorizontalAlignment="Center" 
                      VerticalAlignment="Top" 
                      ItemTemplate="{StaticResource DataTemplate}" 
                      HeaderTemplate="{StaticResource HeaderTemplate}">
            </ListView>

HeaderTemplate中:

<DataTemplate  x:Key="HeaderTemplate" >
        <Grid Height="36" Background="DarkGray" >
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="95"/>
                <ColumnDefinition Width="85"/>
                <ColumnDefinition Width="85"/>
                <ColumnDefinition Width="85"/>
                <ColumnDefinition Width="85"/>
                <ColumnDefinition Width="*" MinWidth="900"/>
            </Grid.ColumnDefinitions>
            <TextBlock x:Uid="DayProject" TextWrapping="Wrap" Text="Project" Grid.Column="0" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="7,2,0" Style="{StaticResource BodyTextStyle}" />
            <TextBlock x:Uid="DayTask" TextWrapping="Wrap" Text="Task" Grid.Column="1" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="7,0" Style="{StaticResource BodyTextStyle}" />
            <TextBlock x:Uid="DayFrom" TextWrapping="Wrap" Text="From" Grid.Column="2" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="7,0" Style="{StaticResource BodyTextStyle}" />
            <TextBlock x:Uid="DayTill" TextWrapping="Wrap" Text="Till" Grid.Column="3" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="7,0" Style="{StaticResource BodyTextStyle}" />
            <TextBlock x:Uid="DaySum" TextWrapping="Wrap" Text="Sum"  Grid.Column="4" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="7,0" Style="{StaticResource BodyTextStyle}" />
            <TextBlock x:Uid="DayNote" TextWrapping="Wrap" Text="Note"  Grid.Column="5" VerticalAlignment="Top" HorizontalAlignment="Left"  Margin="7,0" Style="{StaticResource BodyTextStyle}" />
        </Grid>
    </DataTemplate>

ItemTemplate中:

<DataTemplate x:Key="DataTemplate">
        <Grid d:DesignHeight="50" Margin="0,5,0" >
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="95"/>
                <ColumnDefinition Width="85"/>
                <ColumnDefinition Width="85"/>
                <ColumnDefinition Width="85"/>
                <ColumnDefinition Width="85"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <TextBlock HorizontalAlignment="Left" TextWrapping="NoWrap" Text="{Binding ProjectName}" VerticalAlignment="Center" Margin="5,0" Style="{StaticResource ItemTextStyle_sf}" Grid.Column="0" ToolTipService.ToolTip="{Binding ProjectName}"/>
            <TextBlock HorizontalAlignment="Left" TextWrapping="NoWrap" Text="{Binding TaskName}" VerticalAlignment="Center" Margin="5,0" Style="{StaticResource ItemTextStyle_sf}" Grid.Column="1" ToolTipService.ToolTip="{Binding TaskName}"/>
            <TextBlock HorizontalAlignment="Left" TextWrapping="NoWrap" Text="{Binding StartTimeString}" VerticalAlignment="Center" Margin="5,0" Style="{StaticResource ItemTextStyle_sf}"  Grid.Column="2"/>
            <TextBlock HorizontalAlignment="Left" TextWrapping="NoWrap" Text="{Binding StopTimeString}" VerticalAlignment="Center" Margin="5,0" Style="{StaticResource ItemTextStyle_sf}"  Grid.Column="3"/>
            <TextBlock HorizontalAlignment="Left" TextWrapping="NoWrap" Text="{Binding Sum}" VerticalAlignment="Center" Margin="5,0" Style="{StaticResource ItemTextStyle_sf}"  Grid.Column="4"/>
            <TextBlock HorizontalAlignment="Left" TextWrapping="NoWrap" Text="{Binding Note}" VerticalAlignment="Center" Margin="5,0" Style="{StaticResource ItemTextStyle_sf}"  ToolTipService.ToolTip="{Binding Note}" Grid.Column="5"/>
        </Grid>
     </DataTemplate>

解决方法

以下在我的案例中完美无缺:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition />
    </Grid.RowDefinitions>
    <Grid x:Name="ListViewHeaders" >
        <Grid.ColumnDefinitions>
            <ColumnDefinition  />
            <ColumnDefinition  />
            <ColumnDefinition  />
            <ColumnDefinition  />
            <ColumnDefinition  />
        </Grid.ColumnDefinitions>
        <TextBlock Grid.Column="0" Text="Title Col 1" />
        <TextBlock Grid.Column="1" Text="Title Col 2" />
        <TextBlock Grid.Column="2" Text="Title Col 3" />
        <TextBlock Grid.Column="3" Text="Title Col 4" />
        <TextBlock Grid.Column="4" Text="Title Col 5" />
    </Grid>
    <ListView x:Name="myTable" Grid.Row="1" ItemsSource="{Binding SomeCollection}" >
        <ListView.ItemTemplate>
            <DataTemplate>
                <Grid Width="{Binding ElementName=myTable,Path=ActualWidth}" >
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition  />
                        <ColumnDefinition  />
                        <ColumnDefinition  />
                        <ColumnDefinition  />
                        <ColumnDefinition  />
                    </Grid.ColumnDefinitions>
                    <TextBlock Grid.Column="0" Text="{Binding ItemProperty1}" />
                    <TextBlock Grid.Column="1" Text="{Binding ItemProperty2}" />
                    <TextBlock Grid.Column="2" Text="{Binding ItemProperty3}" />
                    <TextBlock Grid.Column="3" Text="{Binding ItemProperty4}" />
                    <TextBlock Grid.Column="4" Text="{Binding ItemProperty5}" />
                </Grid>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</Grid>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读