2013-02-25 20 views
75

Ich entwerfe gerade eine Windows 8 Store App, die XAML verwendet, aber ich habe ein kleines Dimensionierungsproblem. Ich habe ein ListView mit einem DataTemple.ListViewItem erstreckt sich nicht auf die Breite eines ListView

Der Code für meine Listview & Datatemplate sind unten:

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

Listenansicht innerhalb einer Rasterspalte mit einer festen Breite von 240.

Wenn die Ansicht der Listviewitem angezeigt wird, nicht strecken auf die Breite der ListView. Ich habe versucht, zahlreiche Eigenschaften einschließlich der HorizontalContentAlignment zu setzen, aber ich kann nicht scheinen, das ListViewItem zu strecken!

Kann jemand helfen?

Vielen Dank im Voraus.

Ich verwende Visual Studio 2012, C# 4.5 und eine Windows Store App zu entwickeln.

Antwort

186

Versuchen Hinzufügen Sie folgendes zu Ihrem Listview-Definition

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

Fehler: Bindingpfadfehler: 'Breite' Eigenschaft nicht gefunden auf Project.CustomElement, Project.WindowsPhone, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null '. BindingExpression: Path = 'Breite' DataItem = Project.CustomElement, Project.WindowsPhone, Version = 1.0.0.0, Kultur = neutral, PublicKeyToken = null '; Zielelement ist 'Windows.UI.Xaml.Controls.Grid' (Name = 'null'); Ziel Eigenschaft ist 'Breite' (Typ 'Doppel') –

+0

Hilf mir sehr. Danke meine Stimme +1 – imdadhusen

+0

Es hat für mich funktioniert. Danke vielmals. +1 – arundevma

Verwandte Themen