Pytanie ListViewItem nie będzie rozciągać się do szerokości ListView


Obecnie projektuję aplikację sklepu Windows 8 przy użyciu XAML, ale mam niewielki problem z wielkością. Mam ListView z DataTemple.

Kod dla mojego ListView i DataTemplate są poniżej:

<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>

Widok listy znajduje się w kolumnie siatki o stałej szerokości 240.

Gdy widok jest wyświetlany, elementy ListViewItems nie rozciągają się do szerokości ListView. Próbowałem ustawić wiele właściwości, w tym HorizontalContentAlignment, ale nie mogę uzyskać ListViewItem do rozciągnięcia!

Czy ktokolwiek może pomóc?

Z góry dziękuję.

Używam Visual Studio 2012, C # 4.5 i rozwijam aplikację sklepu Windows.


76
2018-02-25 12:46


pochodzenie




Odpowiedzi:


Spróbuj dodać poniższe do definicji ListView

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

189
2018-02-25 15:21



Błąd: Błąd ścieżki BindingExpression: Właściwość "Szerokość" nie została znaleziona w Project.CustomElement, Project.WindowsPhone, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null '. BindingExpression: Path = 'Width' DataItem = Project.CustomElement, Project.WindowsPhone, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null '; elementem docelowym jest "Windows.UI.Xaml.Controls.Grid" (Name = 'null'); Właściwością target jest "Width" (wpisz "Double") - Black Cid
Pomóż mi dużo. Dzięki mój głos +1 - imdadhusen
To zadziałało dla mnie. wielkie dzięki. +1 - arundevma
nie działa.... - Radu Simionescu
Na elementach DataTemplate, które nie rozciągają się automatycznie na pełną szerokość jak na przykład Grid, musisz dodatkowo ustawić HorizontalAlignment = "Stretch" - tipa