Câu hỏi ListViewItem sẽ không kéo dài đến độ rộng của một ListView


Tôi hiện đang thiết kế một cửa sổ 8 cửa hàng ứng dụng bằng cách sử dụng XAML nhưng tôi có một vấn đề kích thước nhỏ. Tôi có một ListView với một DataTemple.

Mã cho ListView & DataTemplate của tôi dưới đây:

<ListView x:Name="listPageItems"
          Grid.Row="1"
          SelectionMode="Extended"
          IsSwipeEnabled="False"
          ItemsSource="{Binding Mode=OneWay, Source={StaticResource items}}"
          ItemTemplate="{StaticResource NavigationItemTemplate}"
          ScrollViewer.VerticalScrollBarVisibility="Visible">

</ListView>

<DataTemplate x:Key="NavigationItemTemplate">    
        <Grid Height="75">
            <Grid.RowDefinitions>
                <RowDefinition Height="1.6*" />
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>
            <Rectangle Fill="White" />
            <Rectangle Fill="{StaticResource SSEGreenBrush}"
                       Grid.Row="1" />
            <Border BorderThickness="2"
                    BorderBrush="{StaticResource SSEGreenBrush}"
                    Grid.RowSpan="2" />
            <TextBlock x:Name="textTitle"
                       Text="{Binding ClientName}"
                       Style="{StaticResource TitleTextStyle}"
                       Foreground="{StaticResource SSEBlueBrush}"
                       Margin="10,5,5,5" />
            <StackPanel Orientation="Horizontal"
                        Grid.Row="1"
                        HorizontalAlignment="Stretch">
                <TextBlock Text="Last Edit :"
                           Style="{StaticResource SubtitleTextStyle}"
                           Foreground="{StaticResource SSEBlueBrush}"
                           Margin="3,0,0,3"
                           VerticalAlignment="Center" />
                <TextBlock Text="SurveyDate"
                           Style="{StaticResource SubtitleTextStyle}"
                           Foreground="{StaticResource SSEBlueBrush}"
                           Margin="3,0,0,3"
                           VerticalAlignment="Center" />
            </StackPanel>
        </Grid>
    </DataTemplate>

Chế độ xem danh sách nằm trong một cột lưới có chiều rộng cố định là 240.

Khi xem được hiển thị ListViewItems không kéo dài đến chiều rộng của ListView. Tôi đã thử thiết lập nhiều thuộc tính bao gồm các HorizontalContentAlignment nhưng tôi dường như không thể có được ListViewItem để kéo dài!

Ai có thể giúp được không?

Cảm ơn trước.

Tôi đang sử dụng Visual studio 2012, C # 4.5 và phát triển một ứng dụng cửa hàng Windows.


76
2018-02-25 12:46


gốc




Các câu trả lời:


Thử thêm phần sau vào định nghĩa ListView của bạn

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
    </Style>
</ListView.ItemContainerStyle>

189
2018-02-25 15:21



Lỗi: Lỗi đường dẫn BindingExpression: Thuộc tính 'Chiều rộng' không được tìm thấy trên Project.CustomElement, Project.WindowsPhone, Phiên bản = 1.0.0.0, Văn hóa = trung lập, PublicKeyToken = null '. BindingExpression: Đường dẫn = 'Chiều rộng' DataItem = Project.CustomElement, Project.WindowsPhone, Phiên bản = 1.0.0.0, Văn hóa = trung lập, PublicKeyToken = null '; phần tử đích là 'Windows.UI.Xaml.Controls.Grid' (Tên = 'null'); thuộc tính đích là 'Chiều rộng' (loại 'Đôi') - Black Cid
Giúp tôi rất nhiều. Cảm ơn phiếu bầu của tôi +1 - imdadhusen
Nó làm việc cho tôi. cảm ơn rất nhiều. +1 - arundevma
không làm việc.... - Radu Simionescu
Trên các phần tử trong DataTemplate không tự động kéo dài đến độ rộng đầy đủ như Lưới chẳng hạn, bạn phải thiết lập thêm HorizontalAlignment = "Stretch" - tipa