2012-06-03 14 views

cevap

5

Evet, ancak bir veri kılavuzuna benzemesi için stil oluşturmalısınız. (Bu soruya atadığınız etiketlere göre XAML'de geliştirdiğiniz varsayılarak). Hile, uygun genişlik, hizalama vb. Sütunlara sahip bir Izgara kullanan bir veri şablonu oluşturmaktır.

Benzer bir şey yaptım - bir ListView kullanarak. Bu, arka planların yalnızca satırlar yerine hücreler için görünmesini sağlamak için değiştirilebilirdi. Umarım bu yardımcı olur:

ListView simulating the look of a data grid/table

XAML: Cevabınız için

<ListView 
     VerticalAlignment="Top" 
     Margin="0,5" 
     ItemsSource="{Binding HighestExpensesAlternatingList}" 
     ItemTemplate="{StaticResource HighestExpensesTemplate}" 
     BorderBrush="#19FFFFFF" BorderThickness="1,0,0,0" 
     SelectionMode="None" IsItemClickEnabled="False" 
     ScrollViewer.VerticalScrollBarVisibility="Hidden" 
     ScrollViewer.HorizontalScrollBarVisibility="Hidden" 
     ItemContainerStyle="{StaticResource SimpleListViewItemStyle}" 
     IsHitTestVisible="False"/> 


    <DataTemplate x:Key="HighestExpensesTemplate"> 
     <Grid Width="500" VerticalAlignment="Center" Margin="5,0" 
       Background="{Binding AlternatingIndexBrush}"> 

      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="120" /> 
       <ColumnDefinition Width="*" /> 
       <ColumnDefinition Width="150" /> 
      </Grid.ColumnDefinitions> 

      <TextBlock Grid.Column="0" Margin="5" TextWrapping="NoWrap" 
         Style="{StaticResource BasicTextStyle}" 
         VerticalAlignment="Center" 
         Text="{Binding Item.DateString}" /> 

      <TextBlock Grid.Column="1" Margin="5" TextWrapping="NoWrap" 
         Style="{StaticResource BasicTextStyle}" 
         VerticalAlignment="Center" 
         Text="{Binding Item.Description}" /> 

      <TextBlock Grid.Column="2" Margin="5" TextWrapping="NoWrap" 
         Style="{StaticResource BasicTextStyle}" 
         VerticalAlignment="Center" 
         Text="{Binding Item.AmountStringCurrencyFormat}" 
         HorizontalAlignment="Right"/> 

     </Grid> 
    </DataTemplate> 

<Style x:Key="SimpleListViewItemStyle" TargetType="ListViewItem"> 
    <Setter Property="Background" Value="Transparent"/> 
    <Setter Property="TabNavigation" Value="Local"/> 
    <Setter Property="IsHoldingEnabled" Value="False"/> 
    <Setter Property="IsDoubleTapEnabled" Value="False"/> 
    <Setter Property="IsRightTapEnabled" Value="False" /> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="ListViewItem"> 
       <Border BorderBrush="{TemplateBinding BorderBrush}" 
          BorderThickness="{TemplateBinding BorderThickness}" 
          Background="{TemplateBinding Background}" 
          Margin="{TemplateBinding Margin}"> 

        <VisualStateManager.VisualStateGroups> 
         <VisualStateGroup x:Name="CommonStates"> 
          <VisualState x:Name="Normal"/> 
          <VisualState x:Name="Pressed"> 
           <Storyboard> 
            <PointerDownThemeAnimation TargetName="Container"/> 
           </Storyboard> 
          </VisualState> 
         </VisualStateGroup> 
        </VisualStateManager.VisualStateGroups> 

        <Grid x:Name="Container"> 
         <ContentPresenter x:Name="contentPresenter" 
               ContentTemplate="{TemplateBinding ContentTemplate}" 
               ContentTransitions="{TemplateBinding ContentTransitions}" 
               Content="{TemplateBinding Content}" 
               HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
               Margin="{TemplateBinding Padding}" 
               VerticalAlignment="{TemplateBinding VerticalContentAlignment}" /> 
        </Grid> 
       </Border> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 
+0

teşekkürler. Aslında her satırda bir öğe gösterdi, farklı sütunlarda farklı nitelikler, satır başına 3 öğe göstermek istiyorum, her bir öğe farklı bir sütunda .. herhangi bir fikri yapabilir miyim ..? – Ishti

+1

Sanırım bir GridView öğesini ItemsPanel ile birlikte OriGirl = "Horizontal" ve MaximumRowsOrColumns = "3" özelliklerine sahip bir WrapGrid olarak kullanabileceğinizi düşünüyorum. Sonra ayrı satırlar ve sütunlar gibi görünmesini sağlamak için stil yaparsınız. – Krishna

+0

Çok teşekkürler Krishna, bahsettiğiniz gibi WrapGrid kullandım ve tam olarak istediğim gibi çalıştı .. Teşekkürler – Ishti

İlgili konular