如何在行和列中显示数据 XAML windows 8 [英] how to display data in rows and columns XAML windows 8

查看:29
本文介绍了如何在行和列中显示数据 XAML windows 8的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 Metro 风格的 Windows 8 应用程序中,我如何使用类似于此 (https://dl.dropbox.com/u/59251888/img.png) 图像的 xaml 显示数据.是否可以使用 ListBox、ListView、GrdView ..?

In metro style windows 8 application, how can i display the data using xaml similar to this (https://dl.dropbox.com/u/59251888/img.png)image. is it possible using ListBox,ListView,GrdView.. ?

推荐答案

是的,但您需要对其进行样式设置,使其看起来像一个数据网格.(假设您正在根据您分配给此问题的标签在 XAML 中进行开发).诀窍是制作一个数据模板,该模板使用具有适当宽度、对齐方式等的列的网格.

Yes, but you need to style it up so that it looks like a datagrid. (Assuming you are developing in XAML based on the tags you've assigned to this question). The trick is to make a data template that uses a Grid with columns with proper widths, alignments etc.

我做过类似的事情 - 使用 ListView.这可以修改为使背景仅出现在单元格而不是行中 - 我已经这样做了.希望这会有所帮助:

I've done something similar - using a ListView. This could be modified to make the backgrounds appear only for cells as opposed to rows - which I have done. Hope this helps:

XAML:

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

这篇关于如何在行和列中显示数据 XAML windows 8的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆